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

ims*_*msc 7 matplotlib dpi figure

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

fig.savefig('filename.pdf',dpi=300)
Run Code Online (Sandbox Code Playgroud)

数字大小相当大.但是,将它们保存为png文件:

fig.savefig('filename.png',dpi=300)
Run Code Online (Sandbox Code Playgroud)

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

Dav*_*ker 18

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

plt.plot(x, y, 'r-', rasterized=True)
Run Code Online (Sandbox Code Playgroud)

这里x, y是一些情节坐标.您基本上必须使用additional关键字参数raterized来实现此效果.