Вертикальное выравнивание графиков в Mathematica с помощью GraphicsColumn
У меня раздражающая проблема с использованием GraphicsColumn()
в Mathematica объединить несколько графиков DateList в одном столбце. Мне нужно, чтобы они были правильно выровнены, так как они отображают разные временные ряды за один и тот же период, но, как оказалось, размер кадра каждого графика автоматически изменяется в зависимости от длины меток оси Y. Таким образом, объединение графика с 5-значными метками и одного с 2-значными метками полностью поставит под угрозу вертикальное выравнивание. Я попробовал несколько настроек (например, установил ширину или максимальную ширину через ImageSize), к сожалению, они все, кажется, относятся к размеру графики в целом, а не к реальному кадру. Кажется, я не нахожу способ контролировать размер самой рамки. Есть идеи?
2 ответа
Я подозреваю, что вы хотите установить опцию ImagePadding:
GraphicsColumn[{
Plot[Sin[x], {x, 0, 2 Pi}, ImagePadding -> 20, AxesLabel -> {"x", "very very loooooooong"}],
Plot[Sin[x], {x, 0, 2 Pi}, ImagePadding -> 20, AxesLabel -> {"x", "shrt"}]
}]
![Mathematica графика Mathematica графика](/images/3406261ea410ba298ab2f603d4d4cf3994ea2592.png)
Я не уверен, как вы маркируете график, но этот метод должен работать, если вы установите значение достаточно высоко, чтобы показать весь ярлык.
Вы можете попробовать многопанельную команду LevelScheme.
Вот пример, приведенный в их документации и LevelSchemeExamples.nb:
Figure[
{ScaledLabel[{0.5, 1}, "Lissajous curves", FontSize -> 18, Offset -> {0, 1}],
Multipanel[{{0, 1}, {0, 1}}, {2, 2},
XPlotRanges -> {{-1.5, 1.5}, {-Pi/2, 8*Pi + Pi/2}},
YPlotRanges -> {-1.5, 1.5},
XFrameLabels -> {textit["x"], textit["t"]}, BufferB -> 2.5,
YFrameLabels -> textit["y"], BufferL -> 3,
TickFontSize -> 10,
XFrameTicks -> {LinTicks[-2, 2, 1, 5], LinTicks[-Pi, 9*Pi, Pi, 4,
TickLabelFunction -> (Rationalize[#/Pi]*Pi &)]},
YFrameTicks -> LinTicks[-2, 2, 1, 5],
XPanelSizes -> {1, 2.5}, XGapSizes -> {0.1},
YPanelSizes -> {1, 1}, YGapSizes -> {0.1},
Background -> Wheat, PanelLetterBackground -> Wheat
],
FigurePanel[{1, 1}],
RawGraphics[ParametricPlot[{Cos[1*t], Cos[1*t - Pi/2]}, {t, 0, 2*Pi}]],
FigurePanel[{1, 2}],
RawGraphics[Plot[Cos[1*t], {t, 0, 8*Pi}], Dashing -> Automatic],
RawGraphics[Plot[Cos[1*t - Pi/2], {t, 0, 8*Pi}]],
FigurePanel[{2, 1}, PanelLetterBackground -> None],
RawGraphics[ParametricPlot[{Cos[1*t], Cos[4*t - Pi/2]}, {t, 0, 2*Pi}]],
FigurePanel[{2, 2}],
RawGraphics[Plot[Cos[1*t], {t, 0, 8*Pi}], Dashing -> Automatic],
RawGraphics[Plot[Cos[4*t - Pi/2], {t, 0, 8*Pi}]],
},
PlotRange -> {{-0.1, 1.1}, {-0.1, 1.1}},
ImageSize -> 72*2*{3.6, 2.1}
]