减少matplotlib中pdf图形文件的大小

时间:2012-05-21 12:43:28

标签: dpi matplotlib figure

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

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

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

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

然后使用linux convert命令将它们转换为pdf文件很小。我尝试减少dpi,但不会改变pdf文件大小。有没有一种方法可以直接将数字保存为matplotlib中较小的pdf文件?

2 个答案:

答案 0 :(得分:14)

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

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

这里,x, y是一些情节坐标。你基本上必须使用additional关键字参数raterized才能达到效果。

答案 1 :(得分:0)

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

如果你想要数字是高质量的,我的建议是从数据中抽样并制作一个情节。 pdf文件大小大致是它需要记住的数据点数量。