Erstellen animierter Bilder mit Matplotlib

PythonPythonBeginner
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 werden wir lernen, wie man ein animiertes Bild mithilfe von vorkalkulierten Bildlisten erstellt. Wir werden die Matplotlib-Bibliothek in Python verwenden, um die Animation zu erstellen. Ziel dieses Labs ist es, den Prozess des Erstellens eines animierten Bilds zu demonstrieren und einen grundlegenden Überblick über dessen Funktionsweise zu geben.

Tipps für die VM

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

Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund der Einschränkungen in Jupyter Notebook nicht automatisiert werden.

Wenn Sie während des Lernens Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie prompt beheben.

Bibliotheken importieren

Zunächst müssen wir die Bibliotheken importieren, die wir verwenden werden. Wir werden die Matplotlib-Bibliothek verwenden, um die Animation zu erstellen, und die Numpy-Bibliothek, um die Daten für die Animation zu generieren.

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

Erstellen der Figure- und Achsenobjekte

Als nächstes müssen wir die Figure- und Achsenobjekte erstellen, die wir zur Erstellung der Animation verwenden werden. Wir werden die subplots-Methode verwenden, um diese Objekte zu erstellen.

fig, ax = plt.subplots()

Definiere die Funktion

Wir müssen jetzt die Funktion definieren, die wir verwenden werden, um die Daten für die Animation zu generieren. In diesem Beispiel werden wir die Sinus- und Kosinusfunktionen verwenden, um die Daten zu generieren.

def f(x, y):
    return np.sin(x) + np.cos(y)

Generiere die Daten

Wir werden die linspace-Methode aus der Numpy-Bibliothek verwenden, um die Daten für die Animation zu generieren. Wir werden zwei Datensätze, x und y, generieren und dann die y-Daten umformen, um ein zweidimensionales Array zu erstellen.

x = np.linspace(0, 2 * np.pi, 120)
y = np.linspace(0, 2 * np.pi, 100).reshape(-1, 1)

Erstelle die Animationsframes

Wir werden jetzt die Frames für die Animation erstellen. Wir werden eine for-Schleife verwenden, um 60 Frames zu generieren. In jeder Iteration der Schleife werden wir die x- und y-Daten aktualisieren und dann ein neues Bildobjekt mit der imshow-Methode erstellen. Anschließend werden wir das Bildobjekt zur ims-Liste hinzufügen.

ims = []
for i in range(60):
    x += np.pi / 15
    y += np.pi / 30
    im = ax.imshow(f(x, y), animated=True)
    if i == 0:
        ax.imshow(f(x, y))  ## zeige zunächst ein Anfangsbild an
    ims.append([im])

Erstelle die Animation

Wir werden jetzt die Animation mit der ArtistAnimation-Methode erstellen. Wir werden das Figure-Objekt, die ims-Liste, den Zeitintervall zwischen den Frames und die Wiederholverzögerung übergeben.

ani = animation.ArtistAnimation(fig, ims, interval=50, blit=True, repeat_delay=1000)

Zeige die Animation an

Schließlich werden wir die show-Methode verwenden, um die Animation anzuzeigen.

plt.show()

Zusammenfassung

In diesem Lab haben wir gelernt, wie man ein animiertes Bild mit Hilfe von vordefinierten Listen von Bildern erstellt. Wir haben die Matplotlib-Bibliothek in Python verwendet, um die Animation zu erstellen, und die Numpy-Bibliothek, um die Daten für die Animation zu generieren. Wir haben die Figure- und Axes-Objekte erstellt, die Funktion definiert, die Daten generiert, die Animationsframes erstellt und die Animation erstellt. Anschließend haben wir die Animation mit der show-Methode angezeigt. Dieses Lab hat ein grundlegendes Verständnis davon vermittelt, wie man ein animiertes Bild erstellt, und demonstriert den Prozess dazu.