如何提高matplotlib图像质量?
我正在用一个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图像的质量,同时结合figure
的figsize
选项,这样在提高DPI的同时,文本和图形的比例也能正确调整。