Matplotlib-Animation: Der erste Frame bleibt bei Verwendung von blit im Canvas

8

Ich versuche, mit der Matplotlib-Animationsbibliothek zwei rotierende Ellipsen zu zeichnen, und ich habe es (mehr oder weniger) zum Laufen gebracht. Das Problem ist, dass das erste Bild, das gerendert wird, nicht aktualisiert wird. Während ich also zwei rotierende Ellipsen in meiner Leinwand habe, habe ich auch die Ellipsen in ihrer ursprünglichen Position / Orientierung. Schau dir mein einfaches Stück Code an:

%Vor%

Irgendeine Idee, wie Sie das beheben können? Ich könnte natürlich Blit, aber das macht es schrecklich langsam, so dass das nicht wirklich eine Option ist.

Danke!

BEARBEITEN: Endgültiger (funktionierender) Code

%Vor%     
MPA 29.01.2014, 18:26
quelle

2 Antworten

3

Versuchen Sie Folgendes:

%Vor%

Versuchen Sie diesen anderen Ansatz (ich habe nicht nur eine Ellipse zum Testen verwendet, sondern auch hier):

%Vor%     
Alvaro Fuentes 29.01.2014, 20:23
quelle
3

Die vorgeschlagene Antwort scheint wie ein Hack. Du versteckst den Patch für einen Frame und zeigst ihn dann für den nächsten, ohne Grund und Grund. Außerdem habe ich bemerkt, dass die Funktion init aufgerufen wird, wenn Sie die Größe des Diagramms ändern, wodurch die Ellipse nach der Größenänderung mit der vorgeschlagenen Lösung unsichtbar wird.

Ich denke, der richtige Weg ist, animated=True auf die Ellipse Objekte zu setzen. Weitere Informationen finden Sie in der Matplotlib-Animationsdokumentation . Hier ist ein Code, der für mich funktioniert:

%Vor%     
Stanley Bak 12.09.2016 02:37
quelle

Tags und Links