Formen mit Matplotlib in Python zeichnen

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 verschiedene Formen mit der Matplotlib-Bibliothek in Python zeichnet. Matplotlib ist eine Plot-Bibliothek für die Python-Programmiersprache und ihre numerische Mathematik-Erweiterung NumPy. Sie bietet eine objektorientierte Schnittstelle zur Einbettung von Plots in Anwendungen mit allgemeinen GUI-Toolkits wie Tkinter, wxPython, Qt oder GTK.

VM-Tipps

Nachdem die VM gestartet 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 von Einschränkungen in Jupyter Notebook nicht automatisiert werden.

Wenn Sie bei der Lernphase 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

Bevor wir Matplotlib verwenden, müssen wir die erforderlichen Bibliotheken importieren.

import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import matplotlib.path as mpath

Formen definieren

Wir werden die Formen definieren, die wir mit Matplotlib zeichnen möchten. In diesem Beispiel werden wir einen Kreis, ein Rechteck, einen Keil, ein regelmäßiges Polygon, eine Ellipse, einen Pfeil, einen Pfad-Patch und einen fancy-Box-Patch zeichnen.

shapes = [
    mpatches.Circle((0, 0), 0.1, ec="none"),
    mpatches.Rectangle((-0.025, -0.05), 0.05, 0.1, ec="none"),
    mpatches.Wedge((0, 0), 0.1, 30, 270, ec="none"),
    mpatches.RegularPolygon((0, 0), 5, radius=0.1),
    mpatches.Ellipse((0, 0), 0.2, 0.1),
    mpatches.Arrow(-0.05, -0.05, 0.1, 0.1, width=0.1),
    mpatches.PathPatch(mpath.Path([(0, 0), (0.5, 0.5), (1, 0)], [1, 2, 2]), ec="none"),
    mpatches.FancyBboxPatch((-0.025, -0.05), 0.05, 0.1, ec="none",
                            boxstyle=mpatches.BoxStyle("Round", pad=0.02)),
]

Formen zeichnen

Wir werden nun die Formen mit Matplotlib zeichnen, indem wir durch die Liste shapes iterieren und sie zum Plot hinzufügen.

fig, ax = plt.subplots()
for shape in shapes:
    ax.add_artist(shape)
plt.xlim([-0.5, 1.5])
plt.ylim([-0.5, 1.5])
plt.axis('off')
plt.show()

Formen anpassen

Wir können die Formen anpassen, indem wir verschiedene Eigenschaften wie Farbe, Randfarbe und Alpha setzen.

shapes = [
    mpatches.Circle((0, 0), 0.1, color='red', alpha=0.5),
    mpatches.Rectangle((-0.025, -0.05), 0.05, 0.1, ec="none", color='green', alpha=0.5),
    mpatches.Wedge((0, 0), 0.1, 30, 270, ec="none", color='blue', alpha=0.5),
    mpatches.RegularPolygon((0, 0), 5, radius=0.1, color='orange', alpha=0.5),
    mpatches.Ellipse((0, 0), 0.2, 0.1, color='purple', alpha=0.5),
    mpatches.Arrow(-0.05, -0.05, 0.1, 0.1, width=0.1, color='yellow', alpha=0.5),
    mpatches.PathPatch(mpath.Path([(0, 0), (0.5, 0.5), (1, 0)], [1, 2, 2]), ec="none", color='pink', alpha=0.5),
    mpatches.FancyBboxPatch((-0.025, -0.05), 0.05, 0.1, ec="none", color='brown', alpha=0.5,
                            boxstyle=mpatches.BoxStyle("Round", pad=0.02)),
]

fig, ax = plt.subplots()
for shape in shapes:
    ax.add_artist(shape)
plt.xlim([-0.5, 1.5])
plt.ylim([-0.5, 1.5])
plt.axis('off')
plt.show()

Plot speichern

Wir können den Plot als Bilddatei speichern, indem wir die Funktion savefig verwenden.

fig, ax = plt.subplots()
for shape in shapes:
    ax.add_artist(shape)
plt.xlim([-0.5, 1.5])
plt.ylim([-0.5, 1.5])
plt.axis('off')
plt.savefig('shapes.png')

Zusammenfassung

In diesem Lab haben wir gelernt, wie man verschiedene Formen mit der Matplotlib-Bibliothek in Python zeichnet. Wir haben gelernt, wie man Formen definiert, zeichnet, anpasst und den Plot als Bilddatei speichert. Matplotlib bietet eine benutzerfreundliche API zum Zeichnen verschiedener Arten von Plots und wird weit verbreitet bei der Datenvisualisierung eingesetzt.