相关疑难解决方法(0)

如何在保持标签清晰的同时减小导出图的文件大小

将相当复杂的图(特别是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]
Run Code Online (Sandbox Code Playgroud)

Mathematica图形

此示例数据集的大小与我通常使用的大小相同.当我使用导出时Export["C:\\test.pdf", plot],它生成一个23.9MB的PDF文件.如果我反而尝试Export["C:\\test1.pdf", Rasterize[plot]]它会小得多,但图像的完整性和可重复性自然会受到影响.

如果我的实际数字是一个组合图,例如(编辑:f转到900),这将进一步复杂化

plot2 = Show[plot, Plot[x, {x, 500, 900}, PlotStyle -> Thick]]
Run Code Online (Sandbox Code Playgroud)

Mathematica图形

(或使用某些用法Epilog)我喜欢将背景ListDensityPlot光栅化,但保留其他标记并以"矢量"形式绘制.或者至少,帧标签是非光栅化的.

有没有办法做到这一点?

或者,通过其他一些聪明的方法来实现相同的目标?


更新

我已经检查了相关的问题,但这需要比它需要的更复杂(主要是导出然后导入).我已经能够利用该问题中的一些技巧来分别从轴中提取图:

axes = Graphics[{}, Options[plot2]]
Run Code Online (Sandbox Code Playgroud)

Mathematica图形

plots = Graphics[plot2[[1]]]
Run Code Online (Sandbox Code Playgroud)

Mathematica图形

但是,在plots长期失去AspectRatioPlotRangeplots可以用被击中Rasterize,但它需要的尺寸固定.

然后,如何将它们组合在一起?

wolfram-mathematica

12
推荐指数
2
解决办法
4399
查看次数

标签 统计

wolfram-mathematica ×1