2014-02-28 59 views
0

我有一個代碼,它給了我一個輸出。部分代碼如下。我試圖實時繪製輸出「xin」與「tstep」。代碼可以工作,但每次都會在新窗口繪製xin,速度很慢。請爲我提供一個出路,以便更快地繪製它並將數據繪製在一個繪圖中。我想繪製一個python文件的輸出實時

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可以更接近實時繪圖。在該線程中也是動畫API的一個例子,它具有非常高的FPS。您必須在讀取fig,ax = subplots(1,1)行之後添加fig.show(),然後在函數定義的最底部調用run()

+0

非常感謝。我從matplotlib的動畫API中找到了想法 – user3364124

相關問題