我有一個python腳本,它讀入一個數據文件並使用matplotlib庫顯示一個帶有四個圖的圖。數據文件每隔幾秒更新一次,因爲它是一個同時運行的不同軟件的輸出文件。我希望我的matplotlib圖中的四個地塊每20秒使用更新後的數據文件進行刷新。我實現了這一問題的方法如下:如何在數據文件更改時動態更新我的matplotlib圖形?
import pylab as pl
import time
pl.ion()
fig = pl.figure()
while True:
f = open('data.out', 'rb')
#code to parse data and plot four charts
ax = fig.add_subplot(2,2,1)
#...
ax = fig.add_subplot(2,2,4)
#...
pl.draw()
time.sleep(20)
這工作,但我失去了縮放和平移按鈕的功能,如果pl.show()被調用它正常工作。這不是最佳的。但是,如果將pl.show()替換爲pl.draw(),則腳本不再更新圖。有沒有辦法動態更新一個繪圖而不會完全失去縮放/平移功能?