我知道Multipanel
in 等级方案 http://wnsl.physics.yale.edu/levelscheme/也许可以让你做你想做的事 - 但我对此没有太多经验,并且文档中的示例相当稀疏。
我已经粘贴了其中一个示例进入这个SO答案 https://stackoverflow.com/questions/5008267/vertical-alignment-of-plots-in-mathematica-via-graphicscolumn/5010829#5010829,所以看看那里,看看你的想法!
这是我的尝试GraphicsGrid
。
那件事Multipanel
让你做但是GraphicsGrid
不
是让您使用不同的列/行大小。
这意味着我很难以编程方式绘制箭头,而是使用“绘图工具”面板手动绘制它们(:D)
With[{yslice1 = .5, yslice2 = -.8},
GraphicsGrid[
{{DensityPlot[Sin[15 x y], {x, -1, 1}, {y, -1, 1},
ColorFunction -> "PlumColors", AspectRatio -> 2,
Epilog -> {Dashed, White, Line[{{-1, yslice1}, {1, yslice1}}],
Line[{{-1, yslice2}, {1, yslice2}}]}],
Plot[Sin[15 x yslice1], {x, -1, 1}, Axes -> False, Frame -> True]},
{SpanFromAbove,
Plot[Sin[15 x yslice2], {x, -1, 1}, Axes -> False,
Frame -> True]}},
Spacings -> {Scaled[0.2], Scaled[0.0]}]]
Edit:
这是同样的事情使用LevelScheme
,注意框架对齐。
应该可以添加箭头 - 因为LevelScheme
有很多新的箭头指令 - 但我会将其作为家庭作业问题!
<< "LevelScheme`"
{yslice1 = .5, yslice2 = -.8};
Figure[{
SetOptions[Multipanel,
ShowTickLabels -> {True, False, False, True}, Background -> Wheat,
PanelLetterFontSize -> 10, Margin -> {{40, 40}, {40, 0}}],
Multipanel[{{0, 1}, {0, 1}}, {2, 2},
XPlotRanges -> {-1, 1}, YPlotRanges -> {-1, 1},
XFrameLabels -> textit["x"], YFrameLabels -> textit["y"],
TickFontSize -> 10, XFrameTicks -> LinTicks[-1, 1, .5, 4],
YFrameTicks -> LinTicks[-1, 1, .5, 4],
BufferL -> 1.5, BufferB -> 3, Order -> Vertical,
XPanelSizes -> {1, 1}, XGapSizes -> 0.25, YGapSizes -> 0.2],
FigurePanel[{1, 2}],
RawGraphics[
Plot[Sin[15 x yslice1], {x, -1, 1}, Axes -> False, Frame -> True]],
FigurePanel[{2, 2}],
RawGraphics[
Plot[Sin[15 x yslice2], {x, -1, 1}, Axes -> False, Frame -> True]],
FigurePanel[{2, 1}, PanelAdjustments -> {{0, 0}, {0, +1.2}}],
RawGraphics[
DensityPlot[Sin[15 x y], {x, -1, 1}, {y, -1, 1},
ColorFunction -> "PlumColors", AspectRatio -> 2],
Graphics[{Dashed, Thick, White,
Line[{{-1, yslice1}, {1, yslice1}}],
Line[{{-1, yslice2}, {1, yslice2}}]}]]},
PlotRange -> {{0, 1}, {0, 1}}, ImageSize -> 2*72*{5, 3}
]