2012-05-31 4 views
11

최근에 서브 스크립트 텍스트 2를 사용하기 시작 했습니다만, 서브 라인 텍스트 내에서 실행할 때 plt.show() 함수가 작동하지 않는 것으로 나타났습니다.Matplotlib 플롯이 서브 문자로 표시되지 않습니다

예를 들어, 나는 다음과 같은 스크립트를 작성하는 경우 :

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

그러나 더 출력이 생성되지 않습니다 sublimetext를 사용하여, IDLE이 플롯을 생성 실행합니다. python.exe 프로세스가 끝나기 전까지 [Finished]가 출력 될 때까지 '생각'을 유지합니다.

sublimetext를 사용하는 방법을 잘못 이해 한 적이 있습니까?

감사합니다.

+0

가 어떻게 숭고한 텍스트에서 스크립트를 실행하는? 어떤 플랫폼을 사용하고 계십니까? – noio

+0

무슨 뜻인지 모르겠다. 간단히 f5를 눌렀다. – iRoygbiv

+0

Windows (및 CentOS의 3143 버전)에서 Sublime Text 3 빌드 3156을 사용하고 있습니다. 코드는 두 시스템 모두에서 잘 작동합니다. 이미지 창은 스크립트를 실행하기 위해'Ctrl + B '를 누른 후에 보여집니다. – jdhao

답변

13

내 생각에 Sublime Text 2는 자체 환경에서 코드를 실행하고 콘솔 출력 만 트랩하고 표시합니다. wxPython과 같은 GUI를 사용할 때도 같은 문제가 발생합니다.

또 다른 해결 방법은 명령 프롬프트를 열고 수동으로 실행하는 것입니다 (python file.py).

편집 :Here "Under Windows, GUIs are supressed."

편집 2 :Here 페이지의 맨 아래에 수정 방법이 나와 있습니다. 위의 제안

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

정말 고마워요! 이것은 인터넷 검색 시간 후 나를 위해 일했습니다! – Fractaly

10

더 적절한 방법은 기본 파이썬 빌드 시스템 파일에 한 줄을 추가하는 것입니다 . 그것은 잘 작동합니다. 다만 마지막에 다음 행을 추가, 경우 콘솔이 열리고 즉시 파일 탐색기에서 직접 파이썬 파일을 실행처럼 종료 :

matplotlib.pyplot.show('hold') 

내 처음으로 여기에 대답 그것. 죄송 합니다만 응답 형식을 고수하지 못했습니다.

5
내가 세타의 대답을 시도

:

"shell": true 

을 또는 함께 추가 파이썬 빌드 시스템을 만들 :

+2

이것은 올바른 대답이어야합니다. dev 환경을 수정하지 않고도 플롯 창을 유지합니다. – nazikus

1

우분투에서 비슷한 문제가 발생했습니다.

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

을하지만 줄거리는 보이지 않았다 :이 같은 pandasDataFrame을 플롯하려고했다. 당신은 here과 같이 plt.show()을해야한다고 밝혀졌습니다. 먼저

\path\to\Sublime Text Build XXXX\Data\Packages에 파이썬라는 이름의 폴더를 추가

: 세타가 말했듯이

(설치 아나콘다 패키지) 숭고한 텍스트 3

+0

thanks @Roald :) –

0

참고 다음과 같은 방법으로, 사용자 지정 빌드 시스템을 추가 할 필요가 해당 폴더에 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

관련 문제