Matplotlib-Ellipse mit Orientierungsrichtung

Beginner

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

Einführung

In diesem Lab lernst du, wie du mit Matplotlib eine Ellipse mit einer Orientierungsrichtung darstellst. Ellipsen sind eine Form, die in der Datenvisualisierung häufig verwendet wird, um Daten darzustellen. Indem du einer Ellipse eine Orientierungsrichtung hinzufügst, kannst du zusätzliche Informationen über die Richtung der Daten bereitstellen.

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 bei der Lernphase Probleme hast, kannst du Labby gerne fragen. Gib nach der Sitzung Feedback, und wir werden das Problem für dich prompt beheben.

Matplotlib importieren und Figur und Achse erstellen

Zunächst musst du Matplotlib importieren und eine Figur und eine Achse erstellen. Die Figur und die Achse sind die Container für deine Grafik.

import matplotlib.pyplot as plt

## Erstellen Sie eine Figur und eine Achse
fig, ax = plt.subplots(subplot_kw={"aspect": "equal"})

Ellipse erstellen

Als nächstes musst du eine Ellipse mithilfe der Klasse Ellipse erstellen. Du kannst den Mittelpunkt der Ellipse, die Breite und Höhe der Ellipse sowie den Rotationswinkel angeben.

from matplotlib.patches import Ellipse

ellipse = Ellipse(
    xy=(2, 4),
    width=30,
    height=20,
    angle=35,
    facecolor="none",
    edgecolor="b"
)
ax.add_patch(ellipse)

Orientierungsrichtung hinzufügen

Du kannst einer Ellipse eine Orientierungsrichtung hinzufügen, indem du einen Marker am Endpunkt der kleinen Achse zeichnest. Du kannst die Methode get_co_vertices() verwenden, um die Koordinaten der Eckpunkte der Ellipse zu erhalten. Anschließend kannst du die Klasse Affine2D() verwenden, um den Marker zu drehen, um den Winkel der Ellipse zu entsprechen.

from matplotlib.markers import MarkerStyle
from matplotlib.transforms import Affine2D

## Zeichnen Sie einen Pfeilmarker am Endpunkt der kleinen Achse
vertices = ellipse.get_co_vertices()
t = Affine2D().rotate_deg(ellipse.angle)
ax.plot(
    vertices[0][0],
    vertices[0][1],
    color="b",
    marker=MarkerStyle(">", "full", t),
    markersize=10
)

Die Orientierungsrichtung des Pfeils umkehren

Wenn du die Orientierungsrichtung des Pfeils umkehren möchtest, kannst du den Markertyp von > zu < wechseln.

## Um die Orientierungsrichtung des Pfeils umzukehren, wechsle den Markertyp von > zu <.
ax.plot(
    vertices[0][0],
    vertices[0][1],
    color="b",
    marker=MarkerStyle("<", "full", t),
    markersize=10
)

Zeige das Diagramm an

Schließlich kannst du das Diagramm mit der Methode show() anzeigen.

plt.show()

Zusammenfassung

Herzlichen Glückwunsch! Du hast gelernt, wie man mit Matplotlib eine Ellipse mit einer Orientierungsrichtung zeichnet. Diese Technik kann nützlich sein, um Daten zu visualisieren, die eine Richtung haben.