Когда я использую PyCharm и ipython в качестве консоли, через которую интерпретируются команды, графики не появится, пока я не сохраню фигуру. Однако этого не происходит, когда я пытаюсь построить график вне PyCharm.
Вот пример процесса, который не работает в PyCharm:
Код: Выделить всё
In[2]: import matplotlib.pyplot as plt
Backend MacOSX is interactive backend. Turning interactive mode on.
In[3]: plt.plot([1,2,3,4],[1,4,9,16], 'ro')
Код: Выделить всё
In[4]: plt.show()
Код: Выделить всё
In[5]: plt.savefig('foo.png')
Я использовал один и тот же процесс через консоль Python и ipython в общем сеансе терминала и даже через emacs, и во всех случаях график появляется при вызове plt .plot() строка. Вызов plt.show() не требуется.
Действительно, я даже могу использовать терминал через PyCharm и получить нужный график. Один из ответов заключается в том, что мне следует просто строить графики, используя эти методы, и игнорировать PyCharm. Предположим, однако, что я нахожу «навороты» PyCharm достаточно привлекательными, и мне действительно хотелось бы использовать его в качестве своей IDE, но я хочу иметь возможность просматривать графики без необходимости проходить через plt.savefig() хлопот (поскольку я не хочу сохранять каждый сюжет, который пытаюсь выполнить).
Я также пробовал переключать бэкэнды через plt.switch_backend(). Я испробовал все перечисленные варианты, но все они терпят неудачу по причинам, в основном связанным с отсутствием установленных определенных пакетов или нахождением в неправильной системе. Я не пытался установить что-либо для использования нового бэкэнда, поэтому не знаю, решит ли эту проблему другой, правильно установленный бэкэнд. Конечно, более чем готов попробовать!
Сведения о системе:
MacBookPro Retina, середина 2012 г., 16 ГБ оперативной памяти, Yosemite 10.10
Python 3.4.2
ipython 2.3.1
PyCharm Community Edition 4.0.4
Обратите внимание, что я рассмотрел и попытался исправить следующие вопросы:
Диаграммы Python не открывается
Как переключить серверную часть в matlab/python
PyCharm + Matplotlib?
Фигура Matplotlib застряла (серое окно)
matplotlib не показывает мои рисунки, хотя я вызываю pyplot.show()
РЕДАКТИРОВАТЬ
Как отмечено в комментарии ниже, это, похоже, ошибка, а не ошибка настройки с моей стороны. Таким образом, я исправляю этот вопрос, чтобы спросить, существует ли известный обходной путь.
Подробнее здесь: https://stackoverflow.com/questions/286 ... -correctly