2012-11-26 4 views
18

마지막 함수의 마지막 부분에서 내 프로그램 중 하나를 호출하면 다음 코드를 사용하여 간단한 색상 그림을 그립니다.plt.show() 터미널 멈춤 만들기

plt.figure() 
plt.pcolormesh(X,Y,Z) 
plt.colorbar() 
plt.show() 

이후 메인으로 돌아가서 프로그램이 완료되었습니다. 플롯은 예상대로 표시되지만 코너 (우분투)의 x 버튼을 사용하여 닫으면 프로그램이 종료되지 않습니다. 프로세스가 실행 중일 때 그냥 멈 춥니 다. 이 문제를 어떻게 해결할 수 있습니까?

+0

신속하고 더러운 솔루션'plt.draw를 사용하려고 할 수 있습니다()'대신 plt.show'의()'. 'show()'는 모든 대화식 도구를로드합니다. 여기서'draw()'는 나머지 프로그램과 더 잘 어울리는 간단한 뷰어 여야합니다. – jozzas

+0

또한 matplotlib의 어떤 버전을 사용하고 있습니까? 버전 1.0.0에서는'show()'를 약간 변경하여 원하는 것을보다 잘 사용할 수 있도록했습니다. 자세한 내용은 [docs] (http://matplotlib.org/faq/howto_faq.html#use-show)를 참조하십시오. – jozzas

+2

ipython 또는 GUI 스레드를 올바르게 처리하는 다른 matplotlib 친숙한 콘솔을 사용하고 있습니까? – DaveP

답변

18

matplotlib이 어떤 이유로 non-interactive mode에서 실행 중일 수 있습니다. 나는 당신의 로컬 구성에서 것을 방지하는 방법을 잘 모르지만, 당신은 추가 할 경우 중 하나를이 :

plt.ion() 

나이 :

어딘가에 스크립트의 시작 부분에
matplotlib.interactive(True) 

,이 동작을 변경해야합니다 너의 음모의.

1

대화 형 모드의 경우, 당신은 파일의 선두에이 필요합니다

import matplotlib 
matplotlib.use("TkAgg")