PyCharm не будет правильно открывать графики matplotlib
У меня проблема с PyCharm и matplotlib, которые я не могу исправить.
Когда я использую PyCharm и ipython в качестве консоли, с помощью которой интерпретируются команды, графики не отображаются до тех пор, пока я не сохраню фигуру. Однако этого не происходит, когда я пытаюсь построить извне PyCharm.
Здесь процесс exmaple, который не работает в 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')
Этот будет открыть окно с меткой "Рисунок 1". Тем не менее, никакой сюжет не появляется, и мышь переключается на SPOD при зависании над ним (я нахожусь на Mac). На этом этапе я могу попробовать
In[4]: plt.show()
но графика пока не отображается. Однако, если я тогда сделаю:
In[5]: plt.savefig('foo.png')
не только сохраняется фигура с этим именем, график появляется в окне Рисунок 1. Обратите внимание, что PyCharm установил интерактивный режим и признал, что мой бэкэнд (должен быть?) MacOS.
Я использую тот же процесс через консоль 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 не будут открываться
Как переключить backend в matlab/python
PyCharm + Matplotlib?
Фигура Matplotlib застряла (серое окно)
matplotlib не показывает мои рисунки, хотя я называю pyplot.show()
ИЗМЕНИТЬ
Как отмечено в комментарии ниже, это выглядит как ошибка а не сбой настройки с моей стороны. Таким образом, я изменяю этот вопрос, чтобы спросить, существует ли известное обходное решение.
Ответы
Ответ 1
Известная проблема с PyCharm (включая последнюю версию v5) под OS X, которая вызвана тем, как Python может быть установлен на OS X.
Большинство людей устанавливают Python 2 и 3 с помощью brew
, который также заменяет интерпретатор Python по умолчанию, который будет использоваться из командной строки. Тем не менее, интерпретатор по умолчанию и исполняемые файлы pip
также не заменяются для приложений с графическим интерфейсом.
Если вам нужен более конкретный ответ, вам придется правильно документировать свою среду:
- do
which -a python
из командной строки
- do
which -a pip
из командной строки
- выполните
print(sys.path)
и print(os.env)
изнутри PyCharm и консоли и сравните их.
Возможно, сделав это, вы поймете, что загружена неправильная версия модулей.