Учитывая объект 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]]
Мотивация: фиксация диаграмм в этом вопросе
Update:
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