Matplotlib 3D-Graphenanimation

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 Sie lernen, wie Sie mit Matplotlib eine einfache Animation eines rotierenden 3D-Graphen um alle drei Achsen erstellen. Wir werden einen Beispiel-Datensatz verwenden, um einen grundlegenden Drahtgitter-Graphen zu erstellen, Achsenbeschriftungen festzulegen und die Achsen zu drehen.

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 öffnen.

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

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

Bibliotheken und Datensatz importieren

Zunächst müssen wir die erforderlichen Bibliotheken und den Datensatz importieren. In diesem Beispiel werden wir die Bibliotheken matplotlib und mpl_toolkits.mplot3d verwenden, um den 3D-Graphen zu erstellen, und die Funktion axes3d.get_test_data() verwenden, um einen Beispiel-Datensatz zu generieren.

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d

## Generate sample dataset
X, Y, Z = axes3d.get_test_data(0.05)

Erstellen eines 3D-Graphen

Als nächstes werden wir einen 3D-Graphen mit den Funktionen plt.figure() und fig.add_subplot() erstellen. Wir werden auch die Funktion ax.plot_wireframe() verwenden, um den Datensatz als Drahtgitter zu plotten.

## Create 3D plot
fig = plt.figure()
ax = fig.add_subplot(projection='3d')

## Plot wireframe
ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10)

Achsenbeschriftungen festlegen

Wir werden nun die Achsenbeschriftungen für den 3D-Graphen mit den Funktionen ax.set_xlabel(), ax.set_ylabel() und ax.set_zlabel() festlegen.

## Set axis labels
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')

Achsen drehen und Plot aktualisieren

Schließlich werden wir die Achsen drehen und den Plot mit einer for-Schleife aktualisieren, die einen vollen Drehungskreis von Elevation, Azimut, Rollwinkel und allen durchläuft. Wir werden die Funktion ax.view_init() verwenden, um die Achsenansicht und den Titel zu aktualisieren, und die Funktionen plt.title(), plt.draw() und plt.pause() verwenden, um die Animation anzuzeigen.

## Rotate the axes and update the plot
for angle in range(0, 360*4 + 1):
    ## Normalize the angle to the range [-180, 180] for display
    angle_norm = (angle + 180) % 360 - 180

    ## Cycle through a full rotation of elevation, then azimuth, roll, and all
    elev = azim = roll = 0
    if angle <= 360:
        elev = angle_norm
    elif angle <= 360*2:
        azim = angle_norm
    elif angle <= 360*3:
        roll = angle_norm
    else:
        elev = azim = roll = angle_norm

    ## Update the axis view and title
    ax.view_init(elev, azim, roll)
    plt.title('Elevation: %d°, Azimuth: %d°, Roll: %d°' % (elev, azim, roll))

    ## Display animation
    plt.draw()
    plt.pause(.001)

Zusammenfassung

In diesem Lab haben wir gelernt, wie man mit Matplotlib eine einfache Animation eines rotierenden 3D-Graphen um alle drei Achsen erstellt. Wir haben einen Beispiel-Datensatz verwendet, um ein grundlegendes Drahtgitter zu erstellen, Achsenbeschriftungen festzulegen und die Achsen zu drehen. Wir haben auch gelernt, wie man die Funktionen ax.view_init(), plt.title(), plt.draw() und plt.pause() verwendet, um den Graphen zu aktualisieren und die Animation anzuzeigen.