2013-03-22 95 views
9

我正在使用python程序生成一些数据,使用matplotlib.pyplot绘制数据,然后在乳胶文件中显示图形。你如何提高matplotlib图像质量?

我目前将图保存为.png文件,但图像质量不是很好。我试过改变matplotlib.pyplot.figure(dpi=200)等DPI,但这似乎没有什么区别。我也尝试使用不同的图像格式,但他们都看起来有点褪色,不是很尖锐。

有没有其他人有这个问题?

任何帮助,将不胜感激

+3

为什么不使用eps或pdf等矢量图形格式? – 2013-03-22 16:39:35

+0

[这个问题](http://stackoverflow.com/q/332289/875127)处理更改图像的大小/ dpi /分辨率,但听起来像你已经尝试过。检查一下,以防有些错过。 – 2013-03-22 16:41:40

+2

您绝对应该使用基于矢量格式的图。他们很好地支持LaTeX。 – 2013-03-22 16:54:06

回答

10

您可以将图像保存在一个矢量格式,以便他们将没有质量损失可扩展性。这种格式是PDF和EPS。只需将扩展名更改为.pdf.eps,matplotlib将编写正确的图像格式。记住LaTeX喜欢EPS和PDFLaTeX喜欢PDF图像。尽管大多数现代LaTeX可执行文件都是伪装的PDFLaTeX,并且可以随时转换EPS文件(就像在序言中包含epstopdf软件包一样,效果可能不尽人意)。

或者,增加DPI,很多。这些都是你应该记住的数字:

  • 300DPI:普通纸打印
  • 600dpi的:专业纸张打印。大多数商业办公打印机在其输出中达到此目的
  • 1200dpi:专业海报/宣传册级质量。

我使用这些适应的PNG图形质量与figurefigsize选项,允许正确缩放文本和你提高通过DPI品质图形芯片相结合。

+1

或者试试pdf后端http://matplotlib.org/users/pgf.html – pelson 2013-03-22 22:05:44

+0

谢谢.eps文件在lyx中产生更高质量的数字 – user1696811 2013-03-23 15:18:56