使用savefig(新手)的Python Matplotlib错误。

时间:2012-03-29 22:33:23

标签: matplotlib

我计算机上的Python的所有部分最近都是从Enthought学术包中安装的,但是使用Pyscripter来编辑和运行代码。我的学习曲线很早,所以很可能会忽略一些明显的事情。

当我尝试创建一个情节并将其保存时:

import matplotlib.pylab as pl
pl.hist(myEst, bins=20, range=(.1,.60))
pl.ylabel("Freq")
pl.xlabel("Success Probability")
pl.title('Histogram of Binomial Estimator')
pl.axis([0, 1, 0, 500])
pl.vlines (.34,0,500) 
pl.savefig('TestHist.png')
pl.show()

我收到这些错误:

Traceback (most recent call last):
  File "<editor selection>", line 9, in <module>
  File "C:\Python27\lib\site-packages\matplotlib\figure.py", line 1172, in savefig
    self.canvas.print_figure(*args, **kwargs)
  File "C:\Python27\lib\site-packages\matplotlib\backends\backend_wxagg.py", line 100, in print_figure
    FigureCanvasAgg.print_figure(self, filename, *args, **kwargs)
  File "C:\Python27\lib\site-packages\matplotlib\backend_bases.py", line 2017, in print_figure
    **kwargs)
  File "C:\Python27\lib\site-packages\matplotlib\backends\backend_agg.py", line 450, in print_png
    filename_or_obj = file(filename_or_obj, 'wb')
IOError: [Errno 13] Permission denied: 'TestHist.png'

如果我取出pl.savefig('TestHist')行,一切正常,我可以看到我想要的情节,但当那条线在那里时,我得到错误。

我检查了我的后端版本using pl.get_backend(),它返回'WXAgg',根据文档应该可以使用.png格式。

我还尝试在format='png'命令中加入明确的format=pngsavefig,但仍会出错。

任何人都可以就如何继续提供建议,或者其他方法来保存情节吗?

2 个答案:

答案 0 :(得分:2)

您的代码没有任何问题。我刚刚在我的机器上进行了本地测试。问题是这个错误:

IOError: [Errno 13] Permission denied: 'TestHist.png'

您最有可能尝试将文件保存在Python进程无权访问的位置。你在用什么操作系统?你想在哪里保存文件?

答案 1 :(得分:0)

当我在Windows机器上运行神经网络时,以下对我有用:

 image_path = 'A:/DeepLearning/Padhai/MLFlow/images/%s.png' % (expt_id)
        plt.savefig(image_path)

否则请参考:

Using 'r' in front of the path