Animieren von Plots in Python

Feb 24 2023
In diesem Artikel zeige ich Ihnen, wie Sie mit Matplotlib Diagramme in Python animieren, damit Sie Ihren Visualisierungen eine nette Note verleihen können! Matplotlib Matplotlib ist ein Plotpaket für die Programmiersprache Python. Es ist eines der beliebtesten Pakete für Visualisierungen in Python und bietet Benutzern die Möglichkeit, 2D-, 3D- und sogar animierte Diagramme zu erstellen.

In diesem Artikel zeige ich Ihnen, wie Sie mit Matplotlib Diagramme in Python animieren , damit Sie Ihren Visualisierungen eine nette Note verleihen können!

Matplotlib-Logo

Matplotlib

Matplotlib ist ein Plotpaket für die Programmiersprache Python. Es ist eines der beliebtesten Pakete für Visualisierungen in Python und bietet Benutzern die Möglichkeit, 2D-, 3D- und sogar animierte Diagramme zu erstellen. Matplotlib bietet eine Reihe anpassbarer Optionen zum Erstellen von Diagrammen, darunter Liniendiagramme, Streudiagramme, Balkendiagramme und Histogramme. Da viele Menschen bereits mit der Verwendung von Matplotlib für statische Visualisierungen vertraut sind, werde ich auf die Verwendung für animierte Plots eingehen. Für diejenigen, die Matplotlib vielleicht noch nicht kennen, aber bereits mit Python vertraut sind, finden Sie hier eine großartige Ressource, die Ihnen den Einstieg in das Paket erleichtert.

Einfache 2D-animierte Handlung

#Empty lists for X/Y data
x = []
y = []

#Create a figure and axis to plot on
fig, ax = plt.subplots()


#We will create a function that will be called by Matplotlib's FuncAnimation
def getAnimation(iterator):
    newInt = random.randint(1,10)
    #Append values to our lists
    x.append(iterator)
    y.append(newInt)
    
    #Clear previous data from the plot
    ax.clear()
    #Plot the lists with axis limits
    ax.plot(x, y)
    ax.set_xlim([0,20])
    ax.set_ylim([0,20])
    
    
#We pass FuncAnimation our getAnimation function so that it is called in a loop
animation = FuncAnimation(fig, getAnimation, frames=20, 
            interval=500, repeat=False)

plt.show()

FuncAnimation() , das über Matplotlib bereitgestellt wird, erfordert eine Figur und eine Funktion, die in einer Schleife mit einer bestimmten Anzahl von Frames ausgeführt werden. Indem wir getAnimation() als Argument übergeben, erstellen wir im Wesentlichen eine Diashow mit Plots, die zu einer Animation kombiniert werden und sich mehrere Frames lang wiederholen. Dies ist das Ergebnis unseres Codes…

Einfache Animation, bei der für jeden x-Wert zufällige y-Werte dargestellt werden

Eine zufällige 3D-Walk-Animation

#Empty lists for X/Y/Z data
x = []
y = []
z = []

#Lets start off at (10,10,10) the center of our figure with axis limits 20
x.append(10)
y.append(10)
z.append(10)

#Total number of steps we will take
stepTotal = 20

#Create a figure and axis to plot on (3-D)
fig = plt.figure()
ax = fig.add_subplot(projection="3d")

#We will create a function that will be called by Matplotlib's FuncAnimation
def randomWalk(step):
    
    #Append values to our lists
    x.append(random.uniform(1,10))
    y.append(random.uniform(1,10))
    z.append(random.uniform(1,10))
    
    #Clear previous data from the plot
    ax.clear()
    #Plot the lists with axis limits
    ax.plot(x, y, z)
    ax.set_xlim([0,20])
    ax.set_ylim([0,20])
    ax.set_zlim([0,20])
    

# Creating the Animation object
animation = FuncAnimation(fig, randomWalk, frames=stepTotal, interval=100)

plt.show()

Zufälliger Spaziergang im 3D-Raum.

Animationen speichern


#FuncAnimation() returns an animation object that can be stored
animation = FuncAnimation()

#Instantiate the directory you wish to save to
directory = "/medium/animation.gif"

#We call .save() on our animation object and pass the function a directory
animation.save(directory)

Der gesamte Code in diesem Artikel ist auf meinem Github zu finden .

Wenn Sie diesen Medium-Artikel interessant fanden, sollten Sie mir folgen! Ich schreibe über Mathematik, Informatik und alles dazwischen!