Given Graphics
объект, как определить диапазон координат, необходимый для включения всей графики? В основном мне нужно что-то вроде того, что делает Show
по умолчанию, но я хочу явно указать PlotRange
, PlotRangePadding
и ImagePadding
.
Пример, два Show
ниже должны отображать одинаковую
g = Graphics[{Thickness[1], CapForm["Round"], Line[{{0, 0}, {1, 1}}]}];
Show[g]
Show[g, PlotRange -> getPlotRange[g], PlotRangePadding->getPlotRangePadding[g], ImagePadding->getImagePadding[g]]
Мотивацию: исправление диаграмм в , этом вопросе
Обновление :
AbsoluteOptions
дает мне PlotRange
, но не два других варианта. Явное указание ImagePadding-> Automatic
изменяет внешний вид, хотя по умолчанию он предположительно Automatic
.
Два изображения ниже отображаются по-разному, и я не понимаю, почему
g = Graphics[{Thickness[1], CapForm["Round"], Line[{{0, 0}, {1, 1}}]}];
Show[g]
Show[g, Sequence @@ AbsoluteOptions[Show[g]]]
Обновление 2 : Похожая проблема была поднята год назад, но решения не были предложены и не исправлены в системе Mathematica 8.0. Подводя итог
Show [g]
выше с явной установкой PlotRange
ImagePadding
, используемый Show [g]
Show [g, PlotRange-> Automatic]
выглядит иначе, чем Show [g]
AbsoluteOptions
может дать неверный результат для ] PlotRange