【发布时间】:2012-01-03 19:32:44
【问题描述】:
将相当复杂的绘图(尤其是ListDensityPlot)导出为 PDF 或 EPS(例如,用于发布)时,生成的文件可能会非常大。例如:
data = Flatten[Table[{f0, f, Exp[-(f - f0)^2/25^2]}, {f0, 500, 700, 5}, {f, 300,
900}], 1];
plot=ListDensityPlot[data,PlotRange->{Automatic,Automatic,{0,1}},InterpolationOrder->0]
这个示例数据集的大小是我通常使用的大小。当我使用Export["C:\\test.pdf", plot] 导出时,它会生成一个 23.9MB 大小的 PDF 文件。如果我改为尝试Export["C:\\test1.pdf", Rasterize[plot]],它会小得多,但图像的完整性和可重新缩放性自然会受到影响。
如果我的实际数字是一个组合图,这会更加复杂,例如 (Edit: f go to 900)
plot2 = Show[plot, Plot[x, {x, 500, 900}, PlotStyle -> Thick]]
(或Epilog 的某些用法)我希望将背景ListDensityPlot 光栅化,但将其他标记和绘图保持为“矢量”形式。或者至少,帧标签是非光栅化的。
有什么办法吗?
或者,通过其他一些巧妙的方法来实现相同的目标?
更新
我已经查看了相关问题,但这肯定比它需要的复杂得多(基本上是先导出然后再导入)。我已经能够利用该问题中的一些技巧将绘图与轴分开提取:
axes = Graphics[{}, Options[plot2]]
plots = Graphics[plot2[[1]]]
但是,plots 术语失去了AspectRatio 和PlotRange 等。plots 可以用Rasterize 命中,但它需要尺寸修正。
然后,如何将它们组合在一起?
【问题讨论】:
-
感谢您的链接。看起来我可能可以使用它。 “取消”问题的适当方法是什么?
-
如果有五个“关闭”投票,我们可以关闭一个问题,但这通常仅在问题与之前的问题非常相似时才会这样做。封闭的问题然后用作指向较早问题的指针。我必须更仔细地比较这两个问题,看看它们是否重复。现在最好不要做任何事情。
-
好吧,不完全一样。但我也许可以在那里使用一些技巧。
-
作为 Mathematica 标签的活跃成员,您是否考虑过提交给Area 51 Mathematica proposal?我们可以使用您的帮助。