Pycharm не показывает сюжет

Pycharm не показывает график из следующего кода:

import pandas as pd import numpy as np import matplotlib as plt ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000)) ts = ts.cumsum() ts.plot() 

Случается, что окно появляется меньше секунды, а затем снова исчезает.

Используя Pyzo IEP IDE (используя тот же интерпретатор) на том же коде, график показывает, как ожидалось.

… Поэтому проблема должна быть с некоторой настройкой на Pycharm. Я попытался использовать оба python.exe и pythonw.exe как интерпретатор с одинаковыми результатами.

Это мой sys_info:

 C:\pyzo2014a\pythonw.exe -u C:\Program Files (x86)\JetBrains\PyCharm Community Edition 3.4.1\helpers\pydev\pydevconsole.py 57315 57316 PyDev console: using IPython 2.1.0import sys; print('Python %s on %s' % (sys.version, sys.platform)) Python 3.4.1 |Continuum Analytics, Inc.| (default, May 19 2014, 13:02:30) [MSC v.1600 64 bit (AMD64)] on win32 sys.path.extend(['C:\\Users\\Rasmus\\PycharmProjects\\untitled2']) In[3]: import IPython print(IPython.sys_info()) {'commit_hash': '681fd77', 'commit_source': 'installation', 'default_encoding': 'UTF-8', 'ipython_path': 'C:\\pyzo2014a\\lib\\site-packages\\IPython', 'ipython_version': '2.1.0', 'os_name': 'nt', 'platform': 'Windows-8-6.2.9200', 'sys_executable': 'C:\\pyzo2014a\\pythonw.exe', 'sys_platform': 'win32', 'sys_version': '3.4.1 |Continuum Analytics, Inc.| (default, May 19 2014, ' '13:02:30) [MSC v.1600 64 bit (AMD64)]'} 

12 Solutions collect form web for “Pycharm не показывает сюжет”

У меня такая же проблема. Проверьте, что plt.isinteractive() имеет значение True. Установка на него «False» помогла мне.

 plt.interactive(False) 

Я понимаю, что это старо, но я подумал, что проясню неправильное представление о других путешественниках. Установка plt.pyplot.isinteractive () в 'False' означает, что график будет нарисован на определенных командах для рисования (т. Е. Plt.pyplot.show ()). Установка plt.pyplot.isinteractive () в значение «True» означает, что каждая команда pyplot (plt) вызывает команду рисования (т. Е. Plt.pyplot.show ()). Так что вы, скорее всего, искали, это plt.pyplot.show () в конце вашей программы для отображения графика.

В качестве примечания вы можете немного сократить эти утверждения, используя следующую команду импорта: «import matplotlib.pyplot as plt», а не «matplotlib as plt»,

Я пробовал разные решения, но для меня окончательно работал plt.show(block=True) . Вам нужно добавить эту команду после команды myDataFrame.plot() чтобы она myDataFrame.plot() в силу. Если у вас есть несколько сюжетов, просто добавьте команду в конец вашего кода. Это позволит вам видеть все данные, которые вы рисуете.

Я нашел решение. Это сработало для меня:

 import numpy as np import matplotlib.pyplot as plt points = np.arange(-5, 5, 0.01) dx, dy = np.meshgrid(points, points) z = (np.sin(dx)+np.sin(dy)) plt.imshow(z) plt.colorbar() plt.title('plot for sin(x)+sin(y)') plt.show() 

Со мной проблема заключалась в том, что matplotlib использовал неправильный бэкэнд. Я использую Debian Jessie.

В консоли я сделал следующее:

 import matplotlib matplotlib.get_backend() 

В результате получилось: «agg», в то время как это должно быть «TkAgg».

Решение было простым:

  1. Удалить matplotlib через pip
  2. Установите соответствующие библиотеки: sudo apt-get install tcl-dev tk-dev python-tk python3-tk
  3. Установите matplotlib через pip снова.
 import matplotlib matplotlib.use('TkAgg') 

Работает на меня. (PyCharm / OSX)

Мне удалось получить комбинацию некоторых других предложений, которые здесь работают, но только при переключении plt.interactive (False) на «True» и обратно.

 plt.interactive(True) plt.pyplot.show() 

Это замигает мои сюжеты. Затем настройка для «False» разрешена для просмотра.

 plt.interactive(False) plt.pyplot.show() 

Как уже отмечалось, моя программа не выйдет, пока все окна не будут закрыты. Ниже приведены некоторые сведения о моей текущей среде: Python версии 2.7.6 | Anaconda 1.9.2 (x86_64) | (по умолчанию, 10 января 2014, 11:23:15) [GCC 4.0.1 (Apple Inc., сборка 5493)] Версия для Pandas: 0.13.1

Комментарий от DanT исправил это для меня, matplotlib с pycharm на linux с поддержкой GTKagg. При импорте matplotlib я получил бы следующую ошибку:

 >>> import matplotlib as mpl Backend GTKAgg is interactive backend. Turning interactive mode on. Failed to enable GUI event loop integration for 'gtk' 

Когда вы рисуете что-то вроде этого:

 from matplotlib import pyplot as plt plt.figure() plt.plot(1,2) plt.show() 

Появится экран фигуры, но диаграммы не появятся. с помощью:

 plt.show(block=True) 

правильно отображает графику.

В моем случае я хотел сделать следующее:

  plt.bar(range(len(predictors)), scores) plt.xticks(range(len(predictors)), predictors, rotation='vertical') plt.show() 

Следуя сочетанию решений здесь, моим решением было добавить до этого следующие команды:

  matplotlib.get_backend() plt.interactive(False) plt.figure() 

причем следующие два импорта

  import matplotlib import matplotlib.pyplot as plt 

Кажется, что все команды необходимы в моем случае, с MBP с ElCapitan и PyCharm 2016.2.3. Приветствую!

Для новичков вы также можете убедиться, что вы запускаете свой скрипт в консоли , а не как обычный код Python. Это довольно легко выделить часть кода и запустить его .

Вскоре после звонка

 plt.imshow() 

вызов

 plt.show(block = True) 

Вы получите всплывающее окно matplotlib с изображением.

Это блокирующий способ. Дальнейший скрипт не будет работать, пока поп не будет закрыт.

Я тестирую свою версию Pycharm (Community Edition 2017.2.2), вам может потребоваться объявить как plt.interactive (False), так и plt.show (block = True) следующим образом:

 import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 6.28, 100) plt.plot(x, x**0.5, label='square root') plt.plot(x, np.sin(x), label='sinc') plt.xlabel('x label') plt.ylabel('y label') plt.title("test plot") plt.legend() plt.show(block=True) plt.interactive(False) 
Python - лучший язык программирования в мире.