亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Matplotlib中的動態更新圖

Matplotlib中的動態更新圖

千萬里不及你 2019-07-04 15:25:52
Matplotlib中的動態更新圖我正在用Python開發一個應用程序,它從串口收集數據,并在到達時間繪制收集到的數據的圖表。數據的到達時間是不確定的。我希望在收到數據時更新該地塊。我搜索了如何做到這一點,并找到了兩種方法:清除情節,并重新繪制與所有點的情節。通過在特定間隔后更改情節來動畫情節。我不喜歡第一個,因為程序運行和收集數據很長時間(例如一天),重繪的情節將非常緩慢。第二種方法也不可取,因為數據到達的時間是不確定的,我希望只有在收到數據時,才能更新圖。是否有一種方法,我可以通過添加更多的點,只有在收到數據的情況下,才能更新地塊?
查看完整描述

3 回答

?
倚天杖

TA貢獻1828條經驗 獲得超3個贊

有什么方法,我可以更新的情節,只需增加更多的點[s].

根據您的版本,matplotlib中有多種動畫數據的方法。你見過Matplotlib食譜舉個例子?另外,看看更現代的。動畫實例在matplotlib文檔中。最后,動畫API定義函數功能動畫在時間上激活一個功能。這個函數可能就是用來獲取數據的函數。

每個方法基本上設置data屬性,因此不需要清除屏幕或圖形。這個data屬性可以簡單地進行擴展,因此您可以保留前面的點,并繼續添加到您的線條(或圖像或您正在繪制的任何東西)中。

考慮到您說您的數據到達時間不確定,您最好的選擇可能是這樣做:

import matplotlib.pyplot as pltimport numpy

hl, = plt.plot([], [])def update_line(hl, new_data):
    hl.set_xdata(numpy.append(hl.get_xdata(), new_data))
    hl.set_ydata(numpy.append(hl.get_ydata(), new_data))
    plt.draw()

然后當您從串口接收數據時,只需調用update_line.


查看完整回答
反對 回復 2019-07-04
  • 3 回答
  • 0 關注
  • 2841 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號