Quadratische Gitteränderungen animieren (Mattshow)

8

Ich habe ein NxN-Gitter mit einigen Werten, die sich bei jedem Zeitschritt ändern. Ich habe eine Möglichkeit gefunden, eine einzelne Grid-Konfiguration mit matshow function zu plotten, aber ich weiß nicht, wie ich den Status mit jedem Zeitschritt aktualisiere. Hier ist ein einfaches Beispiel:

%Vor%

Dieser Code erzeugt das folgende Bild:
Stellen Sie sich nun vor, dass sich beim nächsten Mal einige Werte ändern, also sollte dieses Bild. Das ist die Logik, die ich im Sinn hatte:

%Vor%

Dies erzeugt 10 Bilder. Ich möchte das animieren, anstatt einzelne Bilder zu erzeugen, und zum Beispiel möchte ich einen Zeitschritt zwischen den Änderungen wählen (d. H. Bildrate).
Ich bin auch offen für Vorschläge für eine andere Funktion, wenn matshow nicht der richtige Weg ist, aber bitte halte es einfach, ich bin relativ unerfahren.

    
enedene 03.05.2012, 10:30
quelle

2 Antworten

13

matplotlib 1.1 hat ein Animationsmodul (sehen Sie sich die Beispiele an).

Mit animation.FuncAnimation können Sie Ihr Diagramm wie folgt aktualisieren:

%Vor%

Sie können die Animation speichern mit:

%Vor%

Ich speichere es mit

%Vor%

Die Bilder bleiben erhalten und Sie können ein animiertes gif wie das folgende mit

erstellen %Vor%

    
bmu 03.05.2012, 12:17
quelle
1

Der einfachste Weg ist wahrscheinlich, dass matplotlib einzelne Bilder speichert und dann ein anderes Programm oder eine Bibliothek zu einer Animation zusammenfügt. Dieser Ansatz verwendet ein Modul namens write2gif , aber Sie können auch mencoder verwenden. ffmpeg oder jede andere Software, die Videos produzieren kann:

%Vor%

Hier ist ein Beispiel, wie es aus der Benutzeroberfläche von pylab heraus funktioniert. Es funktioniert nicht so gut, da das kontinuierliche Rendering im selben Thread wie pylabs gui handlers läuft:

%Vor%     
Björn Lindqvist 03.05.2012 11:24
quelle

Tags und Links