Ho uno script python che legge in un file di dati e visualizza una figura con quattro grafici usando la libreria matplotlib. Il file di dati viene aggiornato ogni pochi secondi, poiché è un file di output per un diverso software che viene eseguito contemporaneamente. Vorrei che i quattro grafici nella mia figura matplotlib si aggiornassero utilizzando il file di dati aggiornato ogni 20 secondi. Il modo in cui ho implementato questo è il seguente:Come posso aggiornare dinamicamente la mia figura matplotlib mentre il file di dati cambia?
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)
Questo funziona, ma perdo la funzionalità dei pulsanti di zoom e pan che normalmente funziona se pl.show() viene chiamato. Questo non è ottimale. Tuttavia, se pl.show() è sostituito da pl.draw(), lo script non aggiorna più i grafici. C'è un modo per aggiornare dinamicamente un grafico senza perdere completamente la funzionalità zoom/panoramica?