dim*_*sev 4 python pdf export matplotlib
我使用 matplotlib 创建一个图形figure, axes = plt.subplots(nrows=3, ncols=2),绘制各种内容axes[0,0].pcolormesh(...),然后将图形导出为 PDFfigure.savefig('figure.pdf')或 PNGfigure.savefig('figure.png')。
我必须使用 PNG,因为 PDF 文件会很大,但这会使图形标签和其他文本变得模糊。
有没有办法将图形导出为 PDF——以便标签等是矢量图形——但在生成的 PDF 文件中将绘图导出为 PNG?简而言之:导出为 PDF,但在该 PDF 中绘图为 PNG(对于小文件大小)。
这是Matplotlib 相对于其他库的巨大优势之一。如果你这样做:
fig, ax = plt.subplots()
ax.pcolormesh(np.random.randn(500, 500), rasterized=True)
fig.savefig('Test.pdf', dpi=50)
Run Code Online (Sandbox Code Playgroud)
轴和标签仍然是矢量,但pcolormesh将以 50 dpi 进行光栅化。当然,对于发布,您应该使用更高的 dpi,但它仍然非常适合减少大型数据集。请注意,如果对数据进行下采样,您还会得到混叠伪像,因此请谨慎使用。