2012-03-17 5 views
15

plot을 표시하는 동안 matplotlib "show"명령을 명령 줄 으로 반환하고 싶습니다. R과 같은 대부분의 다른 플롯 패키지도이 작업을 수행합니다. 그러나 음모 창이 닫힐 때까지 파일롯이 멈 춥니 다. 예를 들어 :pylab matplotlib "show"창이 닫힐 때까지 대기합니다

import pylab 
x = pylab.arange(0, 10, 0.1) 
y = pylab.sin(x) 
pylab.plot(x,y, 'ro-') 
pylab.show() # Python hangs here until the plot window is closed 

나는 명령 줄 쿼리를하는 동안 플롯을 볼 수 있도록하고 싶습니다. 파이썬 2.6.6을 사용하여 데비안을 쥐어 짜 내고 있습니다. 내는 ~/.matplotlib/matplotlibrc

backend  : GTKAgg 

감사를 포함하고 있습니다!

+2

[IPython] (http://ipython.org/) –

+0

을 사용해 보시려면 멀티 스레딩을 위해'ipython -pylab'을 사용하십시오. –

답변

22

pylab.show() 호출 전에 pylab.ion() (interactive mode)을 추가하십시오. 그러면 UI가 별도의 스레드에서 실행되고 show에 대한 호출이 즉시 반환됩니다.

+1

감사합니다. 잘 작동합니다. 'ion()'을 사용하면'show()'명령이 더 이상 필요하지 않습니다. – Sullivan

+1

실제로 응답은 즉시 반환되지만 그 이유는 "응답 없음" –

5

당신은

$ ipython --pylab 

로 실행하고

이 당신에게 당신이 다른 부분을 수정하거나 더 플롯하고 싶을 경우에 대한 프롬프트를 제공
In [8]: x = arange(0,10,.1) 

In [9]: y = sin(x) 

In [10]: plot(x,y,'ro-') 

Out[10]: [<matplotlib.lines.Line2D at 0x2f2fd50>] 

In [11]: 

으로 코드를 실행해야합니다.

+0

감사합니다. 이것은 잘 작동합니다. – Sullivan

관련 문제