Вертикальное выравнивание графиков в 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 графика

Я не уверен, как вы маркируете график, но этот метод должен работать, если вы установите значение достаточно высоко, чтобы показать весь ярлык.

Вы можете попробовать многопанельную команду 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}
]

Кривые Лиссажу

Другие вопросы по тегам