Formen mit Python Matplotlib erstellen

Beginner

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

Einführung

In diesem Tutorial wird die Verwendung von Python Matplotlib zum Erstellen von Kreisen, Keilen und Polygonen beschrieben. Mit .collections.PatchCollection können die erstellten Formen visualisiert werden.

Tipps für die VM

Nachdem die VM gestartet ist, klicken Sie in der linken oberen 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 fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie sofort beheben.

Importieren der erforderlichen Bibliotheken

Zunächst müssen wir die erforderlichen Bibliotheken importieren.

import matplotlib.pyplot as plt
import numpy as np

from matplotlib.collections import PatchCollection
from matplotlib.patches import Circle, Polygon, Wedge

Erstellen einer Figur und einer Achse

Wir erstellen eine Figur und eine Achse, um die Formen zu zeichnen.

fig, ax = plt.subplots()

Definieren der Anzahl der Eckpunkte und der Anzahl der Formen

Wir definieren die Anzahl der Eckpunkte und die Anzahl der zu erstellenden Formen.

resolution = 50  ## die Anzahl der Eckpunkte
N = 3

Kreise erstellen

Wir erstellen Kreise mit Circle() und fügen sie einer Liste von Patches hinzu.

x = np.random.rand(N)
y = np.random.rand(N)
radii = 0.1*np.random.rand(N)
patches = []
for x1, y1, r in zip(x, y, radii):
    circle = Circle((x1, y1), r)
    patches.append(circle)

Keile erstellen

Wir erstellen Keile mit Wedge() und fügen sie zur Liste der Patches hinzu.

x = np.random.rand(N)
y = np.random.rand(N)
radii = 0.1*np.random.rand(N)
theta1 = 360.0*np.random.rand(N)
theta2 = 360.0*np.random.rand(N)
for x1, y1, r, t1, t2 in zip(x, y, radii, theta1, theta2):
    wedge = Wedge((x1, y1), r, t1, t2)
    patches.append(wedge)

Begrenzungskonditionen für die Keile hinzufügen

Wir fügen Begrenzungskonditionen für die Keile hinzu.

patches += [
    Wedge((.3,.7),.1, 0, 360),             ## Vollständiger Kreis
    Wedge((.7,.8),.2, 0, 360, width=0.05),  ## Vollständiger Ring
    Wedge((.8,.3),.2, 0, 45),              ## Vollständiger Sektor
    Wedge((.8,.3),.2, 45, 90, width=0.10),  ## Ringsektor
]

Polygone erstellen

Wir erstellen Polygone mit Polygon() und fügen sie zur Liste der Patches hinzu.

for i in range(N):
    polygon = Polygon(np.random.rand(N, 2), closed=True)
    patches.append(polygon)

Farben festlegen und PatchCollection erstellen

Wir legen die Farben der Formen fest und erstellen eine PatchCollection().

colors = 100 * np.random.rand(len(patches))
p = PatchCollection(patches, alpha=0.4)
p.set_array(colors)
ax.add_collection(p)
fig.colorbar(p, ax=ax)

Zeige das Diagramm an

Wir zeigen das Diagramm an.

plt.show()

Zusammenfassung

In diesem Tutorial wurde gezeigt, wie man mit Python Matplotlib Kreise, Keile und Polygone erstellt. Wir haben auch gelernt, wie man .collections.PatchCollection verwendet, um die erstellten Formen zu visualisieren.