Matplotlib:pdf和png混合导出

4
我使用matplotlib创建了一个图像 figure, axes = plt.subplots(nrows=3, ncols=2),绘制了各种内容 axes[0,0].pcolormesh(...),然后将这个图像导出为PDF figure.savefig('figure.pdf')或PNG figure.savefig('figure.png')文件。
由于PDF文件较大,我必须使用PNG格式,但这会导致标签和其他文本模糊不清。
有没有一种方法可以将图像导出为PDF文件,并在其中将图形以PNG的形式导出,以便文件大小更小,但标签等文本仍然是矢量图形?简而言之:导出为PDF,但在该PDF中将图形导出为PNG(以便文件大小更小)。

在Matplotlib中,PDF文件中没有PNG。 - kinshukdua
根据下面被接受的答案,确实有这样的情况。 - dimitsev
这是光栅化,而不是你所说的在PDF中的PNG - kinshukdua
1个回答

4

这是 Matplotlib 相比其他库的巨大优势之一。如果你执行以下操作:

fig, ax = plt.subplots()
ax.pcolormesh(np.random.randn(500, 500), rasterized=True)
fig.savefig('Test.pdf', dpi=50)

轴和标签仍将是向量,但pcolormesh 在50 dpi下将被光栅化。当然,对于出版物,您应该使用更高的dpi,但它仍然非常适用于减少大型数据集。请注意,如果您对数据进行下采样,则还会获得锯齿状伪影,因此请慎用。 带有嵌入式光栅的PDF

谢谢!我不知道它是这样工作的。 - dimitsev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接