使用 Matplotlib 在 While 循環中即時繪圖
在這個問題中,使用者嘗試使用 OpenCV 即時繪製數據,matplotlib。然而,即時繪圖並沒有如預期般運作。使用者提供了一個簡化的範例,其中繪圖不會一次填充一個點,而是等待循環完成。
要解決此問題,我們需要了解 matplotlib 如何即時更新繪圖。預設情況下,matplotlib 期望對 plt.show() 的函數呼叫來顯示繪圖,然後阻塞直到繪圖視窗關閉。這種行為會導致資料無法即時繪製。
解是使用 plt.pause() 函數。 plt.pause(0.05) 繪製新數據,運行 GUI 的事件循環,並將繪圖暫停 0.05 秒。這允許繪圖即時更新並響應滑鼠互動。
這是成功即時繪製 10 個點的修改後的程式碼:
import numpy as np import matplotlib.pyplot as plt plt.axis([0, 10, 0, 1]) for i in range(10): y = np.random.random() plt.scatter(i, y) plt.pause(0.05) plt.show()
透過此調整,繪圖將現在顯示生成的每個點,從而實現即時視覺化。
以上是如何在 Matplotlib While 迴圈中實作即時繪圖?的詳細內容。更多資訊請關注PHP中文網其他相關文章!