溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何使用Matplotlib繪制實(shí)時(shí)數(shù)據(jù)圖表

發(fā)布時(shí)間:2021-12-02 17:35:43 來(lái)源:億速云 閱讀:244 作者:小新 欄目:大數(shù)據(jù)

小編給大家分享一下如何使用Matplotlib繪制實(shí)時(shí)數(shù)據(jù)圖表,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

背景介紹

將學(xué)習(xí)如何使用Matplotlib繪制實(shí)時(shí)數(shù)據(jù)圖表。我們將學(xué)習(xí)如何監(jiān)控不斷更新的CSV文件,并在該文件進(jìn)入時(shí)繪制該CSV文件中的值。這對(duì)于繪制來(lái)自API或傳感器或任何其他頻繁來(lái)源的數(shù)據(jù)非常有用。讓我們開(kāi)始吧...

如何使用Matplotlib繪制實(shí)時(shí)數(shù)據(jù)圖表

動(dòng)態(tài)生成數(shù)據(jù)

接下來(lái)我們模擬一個(gè)實(shí)時(shí)數(shù)據(jù)的產(chǎn)生,動(dòng)態(tài)的追加到data.csv文件中去,來(lái)看代碼實(shí)現(xiàn):

import csvimport randomimport time
x_value = 0total_1 = 1000total_2 = 1000fieldnames = ["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)

繪制實(shí)時(shí)數(shù)據(jù)圖表

我們來(lái)實(shí)現(xiàn)動(dòng)態(tài)讀取上邊生成的data.csv文件,進(jìn)行實(shí)時(shí)的繪制圖表信息:

import pandas as pdimport matplotlib.pyplot as pltfrom matplotlib.animation import FuncAnimation#設(shè)置樣式plt.style.use('fivethirtyeight')x_vals = []y_vals = []#定義函數(shù)讀取csv文件內(nèi)容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()#調(diào)用FuncAnimation實(shí)時(shí)調(diào)用函數(shù)每秒執(zhí)行1次ani = FuncAnimation(plt.gcf(), animate, \     interval=1000)
plt.tight_layout()plt.show()

看完了這篇文章,相信你對(duì)“如何使用Matplotlib繪制實(shí)時(shí)數(shù)據(jù)圖表”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI