2014-02-28 3 views
0

출력을 제공하는 코드가 있습니다. 코드의 일부는 다음과 같습니다. 실시간으로 출력 "xin"대 "tstep"을 플로팅하려고합니다. 코드가 작동하지만 매번 새로운 창에 xin을 표시하고 매우 느립니다. 좀 더 빨리 계획하고 데이터를 한 줄로 표시하는 방법을 제안하십시오.파이썬 파일의 출력을 실시간으로 플롯하려고합니다.

tstep=1 
    fig=plt.figure() 
    plt.axis([-300,400,600,0]) 
    x=list() 
    y=list() 
    plt.ion() 
    plt.show() 
    while tstep<tend+1: 
     tval=tstep 
     phase=0 
     if xin<intfxpos[0]+tan(intfang[0])*t*(tstep-1):  
      phase=1 
      acount=acount+1 
     else: 
      bcount=bcount+1 
     x.append(xin) 
     y.append(tstep-1) 
     plt.scatter((xin),(tstep-1)) 
     #tstep=tend+1 
     plt.draw() 
     time.sleep(0.05) 
     plt.pause(0.0005) 
+0

[이 스레드를보십시오 (http://stackoverflow.com/questions/4098131/matplotlib-update-a-plot). –

답변

1

이 스레드는 this one과 매우 유사합니다. 당신이 게시 한 코드는 거기에있는 답변 중 하나 인 것으로 보이며, 나를 대신해서 새로운 윈도우를 열지 않습니다.

matplotlib's animation API을 사용하면 실시간 플로팅에보다 가까워 질 수 있습니다. 또한이 스레드는 매우 높은 FPS를 사용하는 애니메이션 API의 예입니다. 행 fig,ax = subplots(1,1)을 읽은 직후에 fig.show()을 추가 한 다음 함수 정의 바깥 쪽 끝에있는 run()을 호출해야합니다.

+0

고마워요. matplotlib의 애니메이션 API에서 알아 냈습니다. – user3364124

관련 문제