【发布时间】:2011-04-18 20:40:40
【问题描述】:
考虑以下简单示例:
f[x_] = Sin[5 x] + Sin[3 x];
p1 = PolarPlot[f[x], {x, 0, 2 Pi}, ImageSize -> 50 {5, 2.5},
Frame -> True]
p2 = PolarPlot[f'[x], {x, 0, 2 Pi}, ImageSize -> 50 {5, 3},
Frame -> True]
产生以下两个数字
现在我想将它们中的两个对齐,一个在另一个之上,没有任何额外的间隙。执行FullGraphics@GraphicsColumn[{p1, p2}, Frame -> All],返回一个对象,在较短的图形周围有额外的空白(我已经打开所有对象中的框架来说明这一点)
我找不到强制每个列“单元格”垂直适应图像大小的方法(注意:我知道在我的示例中,第二个图中还有额外的水平空白,那就是故意的。我只是想垂直贴合它)。我尝试使用Spacings 选项,但这仍然不能令人满意。所以,我的第一个问题是:“有没有办法使用GraphicsGrid 或GraphicsColumn 或通过任何其他方式来做到这一点?”
另一种方法是像这样使用ImageAssemble:
ImageAssemble[Map[FullGraphics, {{p1}, {p2}}, {2}]]
它做了我想要的,但给出了一个光栅化的图像(以下是屏幕截图,因为保存的文件的分辨率要低得多)。
我的实际数字是整齐的矢量图,我什至不想考虑对它们进行光栅化,无论分辨率有多高。所以,我的第二个问题是:“有没有办法从ImageAssemble 获取矢量图形输出?”如果有帮助,我将使用Mma7 并将我的图形保存为Export["filename.pdf",expr]。
我知道在所示示例中使用LevelScheme 是可能的。但是,并非所有绘图功能都与LevelScheme 兼容,并且并非在所有情况下都有效。
【问题讨论】: