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:pyzo2014apythonw.exe -u C:Program Files (x86)JetBrainsPyCharm Community Edition 3.4.1helperspydevpydevconsole.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:UsersRasmusPycharmProjectsuntitled2'])
In[3]: import IPython
print(IPython.sys_info())
{'commit_hash': '681fd77',
'commit_source': 'installation',
'default_encoding': 'UTF-8',
'ipython_path': 'C:pyzo2014alibsite-packagesIPython',
'ipython_version': '2.1.0',
'os_name': 'nt',
'platform': 'Windows-8-6.2.9200',
'sys_executable': 'C:pyzo2014apythonw.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)]'}
916   18  

18 ответов:

у меня была та же проблема. Проверьте погоду plt.isinteractive() - Это правда. Установка его на "False" помогла мне.

plt.interactive(False)

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

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

просто использовать

plt.show()

это делает трюк не знаю почему, но для этого требуется триггер, чтобы показать графики

Я пробовал разные решения, но то, что, наконец, сработало для меня было plt.show(block=True). Вам нужно добавить эту команду после 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()
import matplotlib
matplotlib.use('TkAgg')

работает для меня. (PyCharm/OSX)

Я тестирую в своей версии Pycharm (Community Edition 2017.2.2), вам может потребоваться объявить оба plt.интерактивный (False) и plt.показать (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)

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

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

import matplotlib
matplotlib.get_backend()

результат был: 'agg', в то время как это должно быть'TkAgg'.

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

  1. удалить matplotlib через pip
  2. установить соответствующие библиотеки: суда apt-получить установку на TCL-разработки ТЗ-разработки на Python-ТК "питон3" -ТК
  3. установите matplotlib через pip снова.

вскоре после вызова

plt.imshow() 

вызов

plt.show(block = True)

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

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

Я тестировал в своей версии на PyCharm 2017.1.2. Я использовал interactive (True) и show (block=True).

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

My env: macOS & anaconda3

это работает для меня:

matplotlib.use('macosx')

или в интерактивном режиме:

matplotlib.use('TkAgg')

я смог получить комбинацию некоторых других предложений здесь, работающих на меня, но только при переключении plt.interactive (False) to '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)] Панды версия: 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. Это довольно легко выделите фрагмент кода и запустите его.

в неинтерактивном env мы должны использовать plt.показать(блок=истина)

просто добавить plt.pyplot.show(), Это было бы нормально.

лучшим решением является отключение SciView.

ни один из вышеперечисленных не работал для меня, но следующее:

  1. отключите флажок (показывать графики в окне инструментов) в настройках pycharm > инструменты > Python Scientific.
  2. я получил сообщение об ошибке "модуль PyQt5 не найден". Пошел вперед с установки PyQt5, используя sudo apt-get install python3-pyqt5

Comments

    Ничего не найдено.