matplotlib ist ein Diagrammzeichnungsmodul von Python, und Sie können auch Animationen erstellen. Mit anderen Worten, es ist eine gute Idee, dass die älteren Brüder, die sterben, wenn sie die Animation nicht um Mitternacht sehen, Matplotlib lernen.
Schreiben Sie also als sehr einfaches Beispiel Code, der nur die von numpy generierten Zufallszahlen beschreibt.
Klicken Sie hier für das offizielle Dokument. http://matplotlib.org/api/animation_api.html
ArtistAnimation
Es gibt zwei Arten von Matplotlib-Animationen: ArtistAnimation und FuncAnimation. ArtistAnimation bereitet alle Grafiken im Voraus in Form eines Arrays vor und spielt sie einzeln ab.
artistanimation.py
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
fig = plt.figure()
ims = []
for i in range(10):
rand = np.random.randn(100) #Generiere 100 Zufallszahlen
im = plt.plot(rand) #Zufallszahlen grafisch darstellen
ims.append(im) #Fügen Sie dem Array ims ein Diagramm hinzu
#Zeigen Sie alle 100 ms 10 Diagramme an
ani = animation.ArtistAnimation(fig, ims, interval=100)
plt.show()
Es war wie eine Radiowelle. Wenn Sie einen Anime sehen möchten, nachdem Sie spät abends gearbeitet haben, ist es eine gute Idee, sich so etwas anzuschauen. Beim Speichern eines Videos als GIF am Ende
plt.show()
Teil von
ani.save("output.gif", writer="imagemagick")
Es ist gut, umzuschreiben. (Benötigt ein Paket namens imagemagick) Es scheint, dass es MP4 ausgeben kann, aber ich habe es nicht getan, weil es ein wenig mühsam ist.
FuncAnimation
Dadurch wird das vorgefertigte Diagramm nicht übergeben, sondern die Funktion für jeden Frame der Animation ausgeführt. Nützlich, wenn die Daten zu groß oder möglicherweise endlos sind.
funcanimation.py
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
fig = plt.figure()
def plot(data):
plt.cla() #Löschen Sie das aktuell gezeichnete Diagramm
rand = np.random.randn(100) #Generiere 100 Zufallszahlen
im = plt.plot(rand) #Diagramm generieren
ani = animation.FuncAnimation(fig, plot, interval=100)
plt.show()
Da dies dynamisch ein Diagramm erstellt, ändert sich der Bereich auf der vertikalen Achse jedes Mal entsprechend der Zufallszahl.
Bei der Ausgabe in GIF wird im Gegensatz zu Artist Animation das Ende nicht angegeben
ani = animation.FuncAnimation(fig, plot, interval=100, frames=10)
ani.save("output.gif", writer="imagemagick")
Geben Sie die Anzahl der Frames im Voraus als "Frames = 10" an.
Recommended Posts