Comment puis-je tracer en temps réel dans une boucle while l'aide de matplotlib?

Je suis en train de tracer certaines données provenant d'une caméra en temps réel à l'aide d'OpenCV. Cependant, le tracé en temps réel (à l'aide de matplotlib) ne semble pas fonctionner.

J'ai isolé le problème dans cet exemple simple:

fig = plt.figure()
plt.axis([0, 1000, 0, 1])

i = 0
x = list()
y = list()

while i < 1000:
    temp_y = np.random.random()
    x.append(i)
    y.append(temp_y)
    plt.scatter(i, temp_y)
    i += 1
    plt.show()

Je m'attends à ce que cet exemple parcelle de 1000 points individuellement. Ce qui se passe réellement est que la fenêtre pop-up s'ouvre avec le premier point marquant (ok avec ça), puis attend la boucle se termine avant qu'il remplit le reste du graphe.

Pensées, pourquoi je ne suis pas le voir points peuplée à la fois?

InformationsquelleAutor Chris | 2012-08-08