2016-09-04 11 views
2

ファイルからデータを収集し、タイムスタンプしてプロットする次のコードを記述しました。私は、以下の作業コードを持っている:日付とデータをプロットするmatplotlib

temp_data=0 
x=[datetime.now() + timedelta(hours=-i) for i in range(5)] 
y=[temp_data+i for i in range(len(x))] 
while True: 

    f=open("/sys/class/thermal/thermal_zone0/temp", "r") 

    #timestamp the data 
    temp_time=datetime.now() 

    #read the data in the file to a variable and divide by 1000 to get correct value 
    temp_data=int(f.readlines()[0].strip())/1000 
    x=x[1:] 
    x.append(temp_time) 
    y=y[1:] 
    y.append(temp_data) 
    plt.gcf().autofmt_xdate() 
    plt.plot(x,y) 
    plt.show() 
    sleep(5) 


print "Good Bye, Exiting the Program" 
    #close file after reading 
    f.close() 

プロットが表示され、私はプロット上に表示されるデータの次のセットのためにプロットウィンドウを閉じる必要があります、ということである今、何が起こります。

ファイルを読み込んでタイムスタンプを作成した後も、私のプロットはデータを継続的にプロットしています。

ありがとうございます。

答えて

1

図を開いて保持することができます。

temp_data=0 
x=[datetime.now() + timedelta(hours=-i) for i in range(5)] 
y=[temp_data+i for i in range(len(x))] 
plt.figure() ###### Create figure 
while True: 

    f=open("/sys/class/thermal/thermal_zone0/temp", "r") 

    #timestamp the data 
    temp_time=datetime.now() 

    #read the data in the file to a variable and divide by 1000 to get correct value 
    temp_data=int(f.readlines()[0].strip())/1000 
    x=x[1:] 
    x.append(temp_time) 
    y=y[1:] 
    y.append(temp_data) 
    plt.hold(True) ##### Hold it. 
    plt.gcf().autofmt_xdate() 
    plt.plot(x,y) 
    plt.show() 
    sleep(5) 


print "Good Bye, Exiting the Program" 
    #close file after reading 
    f.close() 
関連する問題