pyplot.show () не может создать граф, вызывает перезапуск IDLE - PullRequest
1 голос
/ 28 апреля 2011

Я только что установил Python 2.7.1 на свой MacBook (работает на Snow Leopard), а также установил scipy superpack . NumPy и matplotlib импортируются просто отлично, но когда я вызываю pyplot.show (), либо в интерпретаторе, либо в скрипте, на секунду появляется пустое окно и затем IDLE перезапускается. График не отображается.

Я написал очень простой тестовый скрипт, который показан на скриншоте ниже. Он создает два списка, печатает их, строит два списка друг против друга и выводит график в png. Это происходит успешно, и вы можете видеть, что png действительно существует в соответствующей папке. Таким образом, pyplot.savefig () работает как положено. Но затем я вызвал pyplot.show (), и вы можете видеть, что интерпретатор перезапустился.

Как я могу это исправить?

screen shot of python output

Обновление

В соответствии с предложением @ Blender'а, я добавил plt.show () в скрипт и запустил его из терминала. На этот раз он выдал следующее сообщение об ошибке:

Exception in Tkinter callback
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/Tkinter.py", line 1410, in __call__
    return self.func(*args)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib-1.1.0-py2.6-macosx-10.6-universal.egg/matplotlib/backends/backend_tkagg.py", line 235, in resize
    self.show()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib-1.1.0-py2.6-macosx-10.6-universal.egg/matplotlib/backends/backend_tkagg.py", line 239, in draw
    tkagg.blit(self._tkphoto, self.renderer._renderer, colormode=2)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib-1.1.0-py2.6-macosx-10.6-universal.egg/matplotlib/backends/tkagg.py", line 19, in blit
    tk.call("PyAggImagePhoto", photoimage, id(aggimage), colormode, id(bbox_array))
TclError

Ответы [ 2 ]

1 голос
/ 29 апреля 2011

Проблема, вероятно, связана с конфликтом между простоями и бэкэндом matplotlib .Вместо того, чтобы использовать idle, попробуйте использовать ipython, который входит в суперпакет, и запустите ipython в режиме pylab, т.е. запустите ipython -pylab в командной строке.

0 голосов
/ 09 августа 2016

Просто используйте import pylab pylab.show (), чтобы отобразить график в отдельном окне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...