在Matplotlib 中動態更新繪圖而不需要完全重繪
從串行端口收集數據並繪製它時,與常見更新相關的效率低下方法。清除並重新繪製整個繪圖或使用定時動畫可能不切實際或會導致延遲。本文提出了一種替代方法,僅在收到新資料時才允許增量繪圖更新。
增量繪圖更新
Matplotlib 提供了多種動畫技術,包括Func動畫函數。此功能可使特定功能隨時間變化的動畫。在我們的例子中,我們可以使用這個函數來動畫資料取得過程。
實作更新函數
動畫方法涉及修改繪製的物件。我們可以透過將新資料點附加到現有資料點來簡單地擴展資料屬性,而不是清除螢幕或圖形。以下是執行此操作的範例函數:
import matplotlib.pyplot as plt import 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 函數即可。這將逐步更新繪圖,而不會產生重新繪製整個圖形的開銷。
以上是如何在不完全重繪的情況下動態更新 Matplotlib 圖?的詳細內容。更多資訊請關注PHP中文網其他相關文章!