Zeigen Sie das NumPy-Array als kontinuierlich aktualisierendes Bild mit Glumpy an

8

Ich habe ein Simulationsmodell, das in Python mit NumPy und SciPy läuft und ein 2D NumPy Array als Ausgabe für jede Iteration erzeugt. Ich habe diese Ausgabe als Bild mit Matplotlib und der Imshow-Funktion angezeigt. Ich habe jedoch über Glumpy erfahren, und auf seiner Dokumentationsseite steht:

Dank der IPython-Shell kann glumpy im interaktiven Modus ausgeführt werden, in dem Sie Live-Updates in angezeigten Arrays sehen können, wenn deren Inhalt geändert wird.

Allerdings kann ich nicht herausfinden, wie ich das mit den Beispielen, die sie gegeben haben, machen kann. Im Grunde läuft mein Modell als eine einzige Funktion, die eine große for-Schleife enthält, um die Anzahl der Iterationen zu durchlaufen, die ich durchführe. Am Ende jeder Iteration der for-Schleife möchte ich das Array anzeigen. Im Moment benutze ich matplotlib, um das Bild in einer PNG-Datei zu speichern, da es durch das Anzeigen auf dem Bildschirm durch matplotlib den Python-Prozess einzufrieren scheint.

Ich bin mir sicher, dass es einen Weg gibt, dies mit Glumpy zu machen, ich bin mir einfach nicht sicher, wie und ich kann keine nützlichen Tutorials finden.

    
robintw 15.10.2010, 13:15
quelle

2 Antworten

10

Die glumpige Dokumentation ist ziemlich nicht existent! Hier ist ein Beispiel für eine einfache Simulation, bei der die Array-Visualisierung mit glumpy gegen matplotlib verglichen wird:

%Vor%

Wenn ich matplotlib mit GTKAgg als mein Backend benutze und blit verwende, um den Hintergrund nicht jedes Mal zu zeichnen, kann ich ungefähr 95 FPS erreichen. Mit Glumpy bekomme ich ca. 250-300 FPS, obwohl ich momentan ein ziemlich schlechtes Grafik-Setup auf meinem Laptop habe. Allerdings ist Glumpy etwas fummeliger, um zu arbeiten, und wenn Sie mit großen Matrizen arbeiten oder eine sehr hohe Framerate benötigen, würde ich bei der Verwendung von matplotlib mit blit .     

ali_m 24.01.2013, 04:48
quelle
1

Mit pyformulas 0.2.8 können Sie pf.screen verwenden, um einen nicht blockierenden Bildschirm zu erstellen:

> %Vor%

Disclaimer: Ich bin der Maintainer für pyformulas

    
Default picture 31.03.2018 23:25
quelle

Tags und Links