Matplotlib Animationen erstellen

MatplotlibMatplotlibBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernst du, wie du eine Animation mit Matplotlib erstellst. Insbesondere lernst du, wie du eine Animation pausieren und fortsetzen kannst, indem du die Methoden Animation.pause() und Animation.resume() verwendest.

Tipps für die VM

Nachdem der VM-Start abgeschlossen ist, klicke in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.

Manchmal musst du einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund von Einschränkungen in Jupyter Notebook nicht automatisiert werden.

Wenn du während des Lernens Probleme hast, kannst du Labby gerne fragen. Gib nach der Sitzung Feedback, und wir werden das Problem für dich prompt beheben.

Bibliotheken importieren

In diesem Schritt importieren wir die erforderlichen Bibliotheken, um eine Animation mit Matplotlib zu erstellen.

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.animation as animation

Die Animation definieren

In diesem Schritt definieren wir die Animation, die wir erstellen möchten. Wir werden eine Animation erstellen, die eine Normalverteilung zeigt, die sich in jedem Frame nach rechts bewegt.

class PauseAnimation:
    def __init__(self):
        ## Erzeuge die Figur und die Achse
        fig, ax = plt.subplots()
        ax.set_title('Klicken, um die Animation zu pausieren/fortzusetzen')

        ## Erzeuge die x-Achsenwerte
        x = np.linspace(-0.1, 0.1, 1000)

        ## Beginne mit einer Normalverteilung
        self.n0 = (1.0 / ((4 * np.pi * 2e-4 * 0.1) ** 0.5)
                   * np.exp(-x ** 2 / (4 * 2e-4 * 0.1)))

        ## Erzeuge die Darstellung
        self.p, = ax.plot(x, self.n0)

        ## Erzeuge die Animation
        self.animation = animation.FuncAnimation(
            fig, self.update, frames=200, interval=50, blit=True)

        ## Setze die Animation als nicht pausiert
        self.paused = False

        ## Füge ein Ereignis für das Betätigen des Buttons hinzu, um die Pause umzuschalten
        fig.canvas.mpl_connect('button_press_event', self.toggle_pause)

    def toggle_pause(self, *args, **kwargs):
        ## Schalte zwischen pausiert und nicht pausiert
        if self.paused:
            self.animation.resume()
        else:
            self.animation.pause()
        self.paused = not self.paused

    def update(self, i):
        ## Aktualisiere die Normalverteilung
        self.n0 += i / 100 % 5
        self.p.set_ydata(self.n0 % 20)
        return (self.p,)

Das Animationsobjekt erstellen

In diesem Schritt erstellen wir ein Objekt der in Schritt 2 definierten Klasse PauseAnimation.

pa = PauseAnimation()

Zeige die Animation an

In diesem Schritt zeigen wir die Animation, die wir in Schritt 2 erstellt haben.

plt.show()

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie eine Animation mit Matplotlib erstellen und wie Sie die Animation mit den Methoden Animation.pause() und Animation.resume() pausieren und fortsetzen. Sie haben auch gelernt, wie Sie eine interaktive Animation erstellen, die auf Benutzereingaben reagiert. Mit diesen Kenntnissen können Sie Ihre eigenen benutzerdefinierten Animationen erstellen und ihnen Interaktivität hinzufügen.