pyplot.show () не может создать граф, вызывает перезапуск IDLE

1

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

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

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

Изображение 174551

Update

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

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
  • 0
    Попробуйте запустить его из окна терминала. Просто введите python и сделайте то же самое, что вы сделали для IDLE.
Теги:
matplotlib

2 ответа

1

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

0

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню