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



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

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

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

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

然后使用 Linux convert命令将它们转换为 PDF,文件很小。我尝试减小 dpi,但这不会改变 pdf 文件大小。有没有办法从matplotlib直接将图形保存为较小的pdf文件?

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

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

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

我认为使用"光栅化=真"可以有效地保存图像,类似于png格式。放大时,您会看到像素模糊。

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

最新更新