2013-02-12 7 views
1

Je rencontre des problèmes avec FuncAnimation, je me sers d'un exemple http://matplotlib.org/examples/animation/basic_example.htmlFuncAnimation ne met pas à jour

import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib.animation as animation 


def update_line(num, data, line): 
    data.pop(0) 
    data.append(np.random.random()) 
    line.set_ydata(data) 

    return line, 

fig1 = plt.figure() 
data = [0.0 for i in xrange(100)] 
l, = plt.plot(data, 'r-') 


plt.ylim(-1, 1) 
line_ani = animation.FuncAnimation(fig1, update_line, 25, fargs=(data, l), interval=50, blit=True) 


plt.show() 

légèrement modifié Le problème est que la première ligne (mise à jour par update_line) reste en arrière-plan. Si je redimensionne la fenêtre (cliquez sur le coin de la fenêtre et déplacez la souris). Cette première ligne disparaît mais maintenant la première ligne après le redimensionnement reste en arrière-plan. Est-ce normal, ou je fais quelque chose de mal?

Merci à l'avance

Répondre

1

Si vous n'êtes pas trop inquiet de la vitesse, retirez blit=True et cela devrait fonctionner.

Blitting est un moyen de gagner du temps en ne redessinant les bits de la figure qui ont changé (au lieu de tout), mais il est facile de se foiré. Si vous n'incluez pas blit=True, tous les artistes sont à nouveau tirés à chaque fois.

Je recommande la lecture python matplotlib blit to axes or sides of the figure? et Animating Matplotlib panel - blit leaves old frames behind.