matplotlib savefig错误

fzwojiic  于 2023-10-24  发布在  其他
关注(0)|答案(3)|浏览(168)

我电脑上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格式。
我还尝试在savefig命令中包含显式的format='png'format=png,但仍然得到错误。
有没有人给予我如何继续下去的建议,或者另一种拯救情节的方法?

kognpnkq

kognpnkq1#

你的代码没有问题。我只是在我的机器上本地测试了它。问题是这个错误:

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

您很可能试图将文件保存到Python进程无权访问的位置。您使用的是哪个操作系统?您试图将文件保存到哪里?

qncylg1j

qncylg1j2#

如果这对其他人有帮助的话,我犯了一个愚蠢的错误,没有真正指定一个文件名,结果返回了同样的错误消息,导致我检查这个问题。
下面是生成错误的代码:

plt.savefig('C:\\Users\\bwarn\\Canopy', format='png')

这是我解决的更正(您将看到我指定了实际的文件和名称)

plt.savefig('C:\\Users\\bwarn\\Canopy\\myplot.png', format='png')
iugsix8n

iugsix8n3#

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

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

或以其他方式参考:
Using 'r' in front of the path

相关问题