Подтвердить что ты не робот

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()

ИЗМЕНИТЬ Как отмечено в комментарии ниже, это выглядит как ошибка а не сбой настройки с моей стороны. Таким образом, я изменяю этот вопрос, чтобы спросить, существует ли известное обходное решение.

4b9b3361

Ответ 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 и консоли и сравните их.

Возможно, сделав это, вы поймете, что загружена неправильная версия модулей.