[英]Python using Matplotlib for real-time plotting
我將在開頭說我仍在學習 Python,所以請保持友善和耐心。 我的代碼如下:
下面的代碼開始:
import matplotlib.pyplot as plt
import csv
import datetime
x = []
y = []
rssi_val = []
def animate(i):
with open('stats.txt', 'r') as searchfile:
time = (searchfile.read(5))
for line in searchfile:
if 'agrCtlRSSI:' in line:
rssi_val = line[16:20]
y = [rssi_val]
x = [time for i in range(len(y))]
plt.xlabel('Time')
plt.ylabel('RSSI')
plt.title('Real time signal strength seen by client X')
#plt.legend()
plt.plot(x,y)
ani = FuncAnimation(plt.gcf(), animate, interval=5000)
plt.tight_layout()
#plt.gcf().autofmt_xdate()
plt.show()
我理解所使用的代碼和方法在這一點上效率不高,將來會進行修改。 現在,我只希望每 5 秒左右顯示一次繪圖值,並使用繪圖(線)對圖表進行動畫處理。
運行它不會產生任何結果。
你需要有這條線
ani = FuncAnimation(plt.gcf(), animate, interval=5000)
在函數animate
,假設數據已接收並正確讀取,您應該會看到繪圖更新。 您可能還需要投入plt.show()
后FuncAnimation()
行取決於你如何執行腳本。
你可能想嘗試這樣的事情
import matplotlib.pyplot as plt
import csv
import datetime
x = []
y = []
rssi_val = []
def animate(i):
with open('stats.txt', 'r') as searchfile:
time = (searchfile.read(5))
for line in searchfile:
if 'agrCtlRSSI:' in line:
rssi_val = line[16:20]
y.append(rssi_val)
x.append(time)
plt.cla()
plt.plot(x,y)
plt.xlabel('Time')
plt.ylabel('RSSI')
plt.title('Real time signal strength seen by client X')
plt.tight_layout()
ani = FuncAnimation(plt.gcf(), animate, interval=5000)
plt.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.