2014-06-30 22 views
0

我正在讀取來自COM端口的傳感器信號,並且希望顯示活動的值。我設法顯示圖形,並且它也得到了更新,但圖形爲每個新點都改變了顏色。我想問題是,不僅點更新,而且整個圖。我的代碼如下所示:Python:實時繪圖更新整行而不是一個點

import pylab as plt 

buttonclick(): 
    plt.figure() 
    ln, = plt.plot([]) 
    plt.ion() 
    plt.show() 
    plotdata =[] 
    while self.Run: 
    plotdata.append(getsensordata()) #getsensordata returns a float 
    plt.plot(plotdata) 
    plt.draw() 
    time.sleep(1000) 

我還嘗試過使用ln.set_data的另一個選項。有了這個選項,似乎只有新的點被更新,但我不能確認,因爲我有問題,軸不能自動縮放。我改變了while循環:

i=0 
while self.Run: 
    plotdata.append(getsensordata()) 
    xdata.append(i) 
    ln.set_data(xdata,plotdata) 
    plt.autoscale(True,True,True) 
    plt.draw() 
    i+=1 

我看到Can you plot live data in matplotlib?但這種解決方案並不在我的情況,不知道爲什麼在所有的工作。另外blib的其他解決方案似乎在我看來有點超過頂端,因爲我似乎非常接近使用這種簡單解決方案的解決方案。

回答

相關問題