Ошибки Python Matplotlib с помощью savefig (новичок). - PullRequest
0 голосов
/ 30 марта 2012

Все части 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=png в команде savefig, но все равно появляются ошибки.

Может кто-нибудь дать мне совет о том, как действовать, или другой подход к сохранению графика?

Ответы [ 2 ]

2 голосов
/ 30 марта 2012

В вашем коде нет ничего плохого. Я только что проверил это локально на моей машине. Проблема заключается в этой ошибке:

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

Скорее всего, вы пытаетесь сохранить файл где-нибудь, к которому у процесса Python нет прав доступа. На какой ОС вы работаете? Где вы пытаетесь сохранить файл?

1 голос
/ 14 апреля 2016

Если это помогает другим, я совершил глупую ошибку, фактически не указав имя файла, и в результате вернул то же сообщение об ошибке, которое привело меня к этому вопросу для проверки.

Вот код, которыйгенерировал ошибку:

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

Вот мое исправление, которое разрешилось (вы увидите, что я обозначил фактический файл и имя)

plt.savefig('C:\\Users\\bwarn\\Canopy\\myplot.png', format='png')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...