您好,登錄后才能下訂單哦!
小編給大家分享一下如何使用Matplotlib繪制實時數據圖表,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
將學習如何使用Matplotlib繪制實時數據圖表。我們將學習如何監控不斷更新的CSV文件,并在該文件進入時繪制該CSV文件中的值。這對于繪制來自API或傳感器或任何其他頻繁來源的數據非常有用。讓我們開始吧...
接下來我們模擬一個實時數據的產生,動態的追加到data.csv文件中去,來看代碼實現:
import csv
import random
import time
x_value = 0
total_1 = 1000
total_2 = 1000
fieldnames = ["x_value", "total_1", "total_2"]
with open('data.csv', 'w') as csv_file:
csv_writer = csv.DictWriter(csv_file, \
fieldnames=fieldnames)
csv_writer.writeheader()
while True:
with open('data.csv', 'a') as csv_file:
csv_writer = csv.DictWriter(csv_file,\
fieldnames=fieldnames)
info = {
"x_value": x_value,
"total_1": total_1,
"total_2": total_2
}
csv_writer.writerow(info)
print(x_value, total_1, total_2)
x_value += 1
total_1 = total_1 + random.randint(-6, 8)
total_2 = total_2 + random.randint(-5, 6)
time.sleep(1)
我們來實現動態讀取上邊生成的data.csv文件,進行實時的繪制圖表信息:
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
#設置樣式
plt.style.use('fivethirtyeight')
x_vals = []
y_vals = []
#定義函數讀取csv文件內容
def animate(i):
data = pd.read_csv('data.csv')
x = data['x_value']
y1 = data['total_1']
y2 = data['total_2']
plt.cla()
#繪制線圖
plt.plot(x, y1, label='Channel 1')
plt.plot(x, y2, label='Channel 2')
plt.legend(loc='upper left')
plt.tight_layout()
#調用FuncAnimation實時調用函數每秒執行1次
ani = FuncAnimation(plt.gcf(), animate, \
interval=1000)
plt.tight_layout()
plt.show()
看完了這篇文章,相信你對“如何使用Matplotlib繪制實時數據圖表”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。