2013-09-05 37 views
2

在Windows中我嘗試運行此代碼。串行工作正常,指南針值轉換爲浮點數matplotlib圖打開,但matplotlib窗口「沒有響應」沒有畫任何東西。matplotlib圖打開,但matplotlib窗口「無響應」

import serial 
import numpy 
import matplotlib.pyplot as plt 
ser = serial.Serial('COM8',9600,timeout=2) 

ciz,=plt.plot([],[]) 

def update_ciz(ciz,newdata): 
    ciz.set_xdata(numpy.append(ciz.get_xdata(),newdata)) 
    ciz.set_ydata(numpy.append(ciz.get_ydata(),newdata)) 
    plt.draw() 
while (True): 
    line = ser.readline() 
    k=line.split(":") 
    temperature=k[0] 
    pressure= k[1] 
    attitude=k[2] 
    realAttitude=k[3] 
    compass=float(k[4]) 
    gx=k[5] 
    gy=k[6] 
    gz=k[7] 
    ax=k[8] 
    ay=k[9] 
    az=k[10] 
    acond=k[11] 
    update_ciz(ciz,compass) 

回答

2

在matplotlib你需要使用 「plt.show()」 中顯示的情節。由於您正在使用「plt.draw()」來更新繪圖,因此您可能還想使用交互模式。

嘗試包括本您的後 「CIZ,= plt.plot([],[])」 命令:

plt.ion() 
plt.show()