2010-02-22 6 views
16

matplotlib을 사용하여 차트와 그래프를 그립니다.차단 실행없이 선 그리기

이 명령에서 show() 코드 블록을 사용하여 차트를 그릴 때.

새 데이터로 값 목록을 새로 고치고 백그라운드에서 이미지를 새로 고치기를 원합니다. 그래프로 창을 닫을 때마다이를 수행하는 방법은 무엇입니까? 다음은이는 -wthread (또는 -pylab) 옵션을 Ipython를 호출하여 작동 내가

import pylab 
a = (1,2,3,4) 
pylab.plot(a) 
pylab.show() # blocks here 
+0

당신이 전화하지 않는 일이 발생하는 경우 pylab.show() : 사용되지 않는 -pylab 플래그를 사용하는 경우 는 사실 그것은 제안이야? – telliott99

+0

문제가 해결되면 대답 중 하나를 "수락"(녹색 확인 표시)으로 표시 할 수 있습니다. 또는 다른 것을 찾은 경우 직접 답변을 추가하십시오. 또는 해답이 전혀 없다는 것을 모든 사람에게 알리는 주석 일 수도 있습니다. :) – EOL

+0

[가능한 계산을 계속할 수 있도록 matplotlib 플롯을 분리하는 방법이 있습니까?] (http://stackoverflow.com/questions/458209/is-there-a-way-to-detach-matplotlib- plots-so-the-the-computation-can-continue) – Wernight

답변

12

IPython이 -pylab으로 시작되면 차단하면 안됩니다.

그렇지 않은 경우 : ion()을 사용하면 대화 형 모드를 켭니다. show()은 더 이상 시스템을 차단하지 않습니다 . 모든 draw() 또는 plot(x, y)이 플롯을 업데이트했습니다.

ioff()은 대화 형 모드를 끕니다. 많은 양의 데이터를 추가하고 작은 세부 사항을 모두 업데이트하려는 경우 을 유용하지 않은 경우 유용합니다.

은 참조 : http://www.scipy.org/Cookbook/Matplotlib/Animations

+0

최신 IPython (Jupyter)을 사용하는 경우, cli'-pylab' 플래그는 노트북 별'% pylab' 명령을 위해 더 이상 사용되지 않습니다. – tyleha

-1

을 사용하고있는 코드입니다. 더 이상 show에 차단되지 않습니다. 아마도 그래서 기다릴로

raw_input("Press enter when done...") 

다음,

pyplot.draw() 

plot() 후 :

3

당신이 IPython 쉘을 사용하는 대신 프로그램을 실행하지 않는 경우, 당신은 아마하고 싶은 사용자가 다른 것을 계획하기 전에

프로그램 시작시 pyplot.ion()을 수행하는 경우 draw()을 수행하는 경우가 종종 있습니다.

pyplot.show()은 실제로 주 음모 창 (확대/축소, 패닝 등)에서 이벤트를 처리하는 무한 루프입니다.

0

은 맥 OS X에 난 단지 차단 해제하는 흰색 화면을 생산하는 문제가 있었다. 결국 @ tyleha의 제안은 참고 서적에서 % pylab을 직접 사용하는 것을 도왔습니다.

bash:~/Projects/plyground $ python -m IPython notebook -pylab 
WARNING: `-pylab` flag has been deprecated. 
Use `--matplotlib <backend>` and import pylab manually. 
[E 21:09:05.446 NotebookApp] Support for specifying --pylab on the command line has been removed. 
[E 21:09:05.447 NotebookApp] Please use `%pylab` or `%matplotlib` in the notebook itself.