如何提高matplotlib图像质量?

19 投票
1 回答
22763 浏览
提问于 2025-04-17 19:59

我正在用一个Python程序生成一些数据,然后用matplotlib.pyplot来绘制这些数据,最后把图像放到一个latex文件里。

现在我把图像保存为.png格式,但图像质量不是很好。我试过在matplotlib.pyplot.figure(dpi=200)中调整DPI(每英寸点数),但似乎效果不大。我也尝试过使用不同的图像格式,但它们看起来都有点模糊,不够清晰。

有没有人遇到过这个问题?

任何帮助都会非常感谢。

1 个回答

24

你可以把图片保存为矢量格式,这样它们就可以放大而不会失去质量。常见的矢量格式有PDF和EPS。只需要把文件后缀改成.pdf.eps,matplotlib就会自动生成正确的图片格式。记住,LaTeX喜欢EPS格式,而PDFLaTeX则喜欢PDF格式。虽然现在大多数LaTeX程序其实都是PDFLaTeX,只是在后台把EPS文件转换成PDF(这和你在文档开头加上epstopdf包的效果是一样的,但可能效果没有你想象的那么好)。

另外,你也可以大幅提高DPI(每英寸点数)。以下是一些你需要记住的数字:

  • 300dpi:适合普通纸张打印
  • 600dpi:适合专业纸张打印。大多数商业办公打印机的输出都能达到这个水平。
  • 1200dpi:适合专业海报或宣传册的高质量打印。

我使用这些设置来调整PNG图像的质量,同时结合figurefigsize选项,这样在提高DPI的同时,文本和图形的比例也能正确调整。

撰写回答