10

matplotlib中,我LineCollection用来绘制国家并为其着色,其中给出了县的边界。当我将图形保存为 pdf 文件时:

fig.savefig('filename.pdf',dpi=300)

图形尺寸相当大。但是,将它们保存为 png 文件:

fig.savefig('filename.png',dpi=300)

然后使用linuxconvert命令将它们转换为pdf文件很小。我尝试降低 dpi,但是不会改变 pdf 文件的大小。有没有办法可以将这些数字直接保存为 matplotlib 中的较小的 pdf 文件?

4

2 回答 2

27

PDF 更大,因为它包含所有矢量信息。通过保存 PNG,您可以生成光栅化图像。在您的情况下,您似乎可以通过直接栅格化绘图来生成较小的 PDF:

plt.plot(x, y, 'r-', rasterized=True)

x, y是一些绘图坐标。您基本上必须使用附加关键字参数raterized才能达到效果。

于 2012-05-21T13:27:23.150 回答
2

我认为使用“rasterized = True”可以有效地保存图像,类似于 png 格式。放大时,您会看到模糊的像素。

如果您希望这些数字具有高质量,我的建议是从数据中采样并绘制图表。pdf 文件大小大致是它需要记住的数据点的数量。

于 2016-02-16T20:22:47.807 回答