2012-05-31 2 views
11

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

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

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

Запуск этого с IDLE создает сюжет, однако использование sublimetext не генерируется выходной. Он просто продолжает «думать», пока не закончу процесс python.exe, после которого выводится [Готово].

Я не понял, как должен использоваться sublimetext?

Спасибо.

+0

Как вы выполнить скрипт в Sublime Text? На какой платформе вы работаете? – noio

+0

Я не уверен, что вы имеете в виду, я просто ударил f5. – iRoygbiv

+0

Я использую Sublime Text 3 build 3156 для Windows (и версию 3143 на CentOS). Код работает отлично в обеих системах. Окна изображений отображаются после нажатия клавиши «Ctrl + B» для выполнения сценария. – jdhao

ответ

13

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

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

EDIT:Here В нем указано, что «под Windows, GUI подавляются».

EDIT 2:Here В нем перечислены способы его устранения, в нижней части страницы.

+0

Большое вам спасибо! Это работало для меня после нескольких часов работы в Google! – Fractaly

10

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

"shell": true 

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

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

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

matplotlib.pyplot.show('hold') 

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

+2

Это должен быть правильный ответ. Он держит сюжетное окно вверх, не изменяя среду окружения – nazikus

1

У меня была аналогичная проблема под Ubuntu. Я пытаюсь построить в pandasDataFrame так:

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

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

+0

спасибо @Roald :) –

0

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

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

сначала добавить папку с именем питона в \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() 

Демо:

enter image description here

Смежные вопросы