Python 是一種非常流行的編程語言,擁有眾多優秀的庫和工具,其中就包括 matplotlib 庫,它可以幫助我們輕松繪制出各種圖表。有時候我們需要畫出長時間運行的實時圖表,而又不能讓程序阻塞,這時可以使用基于事件循環的方式來實現。
事件循環可以通過 matplotlib 的 update 事件來實現實時展示,具體的實現方法如下:
import matplotlib.pyplot as plt import numpy as np fig, ax = plt.subplots() line, = ax.plot(np.random.randn(100)) def update(data): line.set_ydata(data) fig.canvas.draw() return line, def run(): data = np.random.randn(100) while True: data += np.random.randn(100) yield update(data) ani = FuncAnimation(fig, run, frames=1000, blit=True, repeat=False) plt.show()
代碼中首先創建了一個 figure 和一個 axes 對象,并在 axes 上繪制了一條線,然后定義了一個 update 函數來更新數據和繪圖。接著定義了一個生成器函數 run,用來不斷產生要更新的數據。最后使用 FuncAnimation 來創建動畫對象,并將它顯示出來。
通過這種方式,我們可以不阻塞主線程,而是在事件循環中不斷更新圖表,從而實現實時顯示效果。當然,這并不是唯一的實現方法,還可以使用其他更加高級的可視化框架來實現類似的功能。