【问题标题】:Matplotlib: mixed export to pdf and pngMatplotlib:混合导出为 pdf 和 png
【发布时间】:2021-11-30 00:21:33
【问题描述】:

我用 matplotlib figure, axes = plt.subplots(nrows=3, ncols=2) 创建一个图形,绘制各种东西 axes[0,0].pcolormesh(...) 然后将图形导出到 PDF figure.savefig('figure.pdf') 或 PNG figure.savefig('figure.png')

我必须使用 PNG,因为 PDF 文件会很大,但这会使图形标签和其他文本模糊

有没有办法将图形导出为 PDF(以便标签等成为矢量图形),但在生成的 PDF 文件中将绘图导出为 PNG?简而言之:导出为 PDF,但在该 PDF 中绘制为 PNG(适用于小文件)。

【问题讨论】:

  • matplotlib 中 PDF 中没有 PNG
  • @kinshukdua 根据下面接受的答案,有。
  • 这是光栅化,而不是真正意义上的 PNG PDF,正如您所说的那样

标签: python matplotlib pdf export


【解决方案1】:

这是 Matplotlib 相对于其他库的巨大优势之一。如果你这样做:

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

轴和标签仍将是矢量,但pcolormesh 将以 50 dpi 进行光栅化。当然,对于发布,您应该使用更高的 dpi,但它仍然非常适合减少大型数据集。请注意,如果您对数据进行下采样,您也会得到混叠伪影,因此请谨慎使用。

【讨论】:

  • 谢谢!我不知道它是这样工作的。
猜你喜欢
  • 2020-10-12
  • 1970-01-01
  • 1970-01-01
  • 2013-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-01
  • 2017-07-17
相关资源
最近更新 更多