Графики Matplotlib, не отображаемые в сублиметре

Недавно я начал использовать sublimetext 2, однако сегодня я заметил, что функция plt.show() не работает, когда запускается внутри sublimetext.

Если, например, я создаю следующий script:

import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.show() 

Выполнение этого с помощью IDLE генерирует график, однако при использовании sublimetext не генерируется вывод. Он просто продолжает "думать", пока не закончу процесс python.exe, после которого выводится [Готово].

Не понял ли я, как должен использоваться сублиметаус?

Спасибо.

Ответ 1

Я предполагаю, что Sublime Text 2 запускает ваш код в своей собственной среде и только ловушки и отображает вывод консоли. Та же проблема существует при использовании GUI, например, wxPython.

Еще одна задача - открыть командную строку и запустить ее вручную (python file.py).

EDIT: Здесь в нем говорится, что "под Windows, GUI подавляются".

РЕДАКТИРОВАТЬ 2: Здесь в нем указывается способ его исправления, расположенный в нижней части страницы.

Ответ 2

Более подходящим способом является просто добавить одну строку в системный файл сборки по умолчанию Python:

"shell": true

Или создайте дополнительную систему сборки Python с помощью

{
    "cmd": ["python", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
    "shell": true
}

Ответ 3

Я опробовал тета-ответ, как было предложено выше. Он работает нормально. Если консоль открывается и закрывается мгновенно, как запуск файлов python непосредственно из проводника файлов, просто добавьте следующую строку в конец:

matplotlib.pyplot.show('hold')

Его мой первый ответ на этот вопрос. Извините, если я не придерживался формата ответа.

Ответ 4

У меня была аналогичная проблема в Ubuntu. Я пытался построить pandas DataFrame следующим образом:

df = pandas.DataFrame([*range(5)])
df.plot()

Но сюжет не показывался. Оказывается, вам нужно сделать plt.show(), как обсуждалось здесь.

Ответ 5

Примечание в возвышенном тексте 3 (с установленным пакетом anaconda)

Вам нужно добавить настраиваемую систему сборки, как сказал theta, по:

сначала добавьте папку с именем python в \path\to\Sublime Text Build XXXX\Data\Packages

затем поместите файл с именем python.sublime-build в эту папку.

{
    "cmd": ["python", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
    "shell": true
}

и не забудьте добавить plt.show(), как сказал Роальд.

plt.imshow(image)
plt.show()

Демо:

введите описание изображения здесь