Учитывая объект 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
.
