Einführung
In diesem Tutorial lernen Sie, wie Sie mithilfe von Matplotlib-Collection eine Visualisierung erstellen. Es wird gezeigt, wie Sie LineCollection, PolyCollection und RegularPolyCollection verwenden. Außerdem wird gezeigt, wie Sie die offsets- und offset_transform-Schlüsselwortargumente von LineCollection und PolyCollection verwenden, um die Positionen der Spiralen festzulegen. Darüber hinaus wird gezeigt, wie Sie RegularPolyCollection verwenden, um regelmäßige Polygone zu erstellen.
Tipps für die VM
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 ö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 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 ab, und wir werden das Problem für Sie prompt beheben.
Importieren der erforderlichen Bibliotheken
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import collections, transforms
Der erste Schritt besteht darin, die erforderlichen Bibliotheken zu importieren. Für dieses Tutorial werden wir Matplotlib und Numpy verwenden.
Spiralen erstellen
nverts = 50
npts = 100
## Make some spirals
r = np.arange(nverts)
theta = np.linspace(0, 2*np.pi, nverts)
xx = r * np.sin(theta)
yy = r * np.cos(theta)
spiral = np.column_stack([xx, yy])
Als nächster Schritt erstellen wir Spiralen mit Numpy. Wir werden die sin- und cos-Funktionen verwenden, um die Spiralen zu erstellen.
Verschiebungen erstellen
## Fixing random state for reproducibility
rs = np.random.RandomState(19680801)
## Make some offsets
xyo = rs.randn(npts, 2)
Als dritten Schritt erstellen wir Verschiebungen mit Numpy. Wir werden die Zufallsfunktion verwenden, um die Verschiebungen zu erstellen.
Erstellen einer LineCollection mit Verschiebungen
col = collections.LineCollection(
[spiral], offsets=xyo, offset_transform=ax1.transData)
trans = fig.dpi_scale_trans + transforms.Affine2D().scale(1.0/72.0)
col.set_transform(trans)
col.set_color(colors)
ax1.add_collection(col, autolim=True)
ax1.autoscale_view()
ax1.set_title('LineCollection using offsets')
Als vierter Schritt erstellen wir eine LineCollection mit Verschiebungen. Wir werden die LineCollection verwenden, um Kurven mit Verschiebungen zu erstellen. Wir werden auch die offset_transform verwenden, um die Positionen der Kurven festzulegen.
Erstellen einer PolyCollection mit Verschiebungen
col = collections.PolyCollection(
[spiral], offsets=xyo, offset_transform=ax2.transData)
trans = transforms.Affine2D().scale(fig.dpi/72.0)
col.set_transform(trans)
col.set_color(colors)
ax2.add_collection(col, autolim=True)
ax2.autoscale_view()
ax2.set_title('PolyCollection using offsets')
Als fünfter Schritt erstellen wir eine PolyCollection mit Verschiebungen. Wir werden die PolyCollection verwenden, um die Kurven mit Farben zu füllen. Wir werden auch die offset_transform verwenden, um die Positionen der Kurven festzulegen.
Erstellen einer RegularPolyCollection mit Verschiebungen
col = collections.RegularPolyCollection(
7, sizes=np.abs(xx) * 10.0, offsets=xyo, offset_transform=ax3.transData)
trans = transforms.Affine2D().scale(fig.dpi / 72.0)
col.set_transform(trans)
col.set_color(colors)
ax3.add_collection(col, autolim=True)
ax3.autoscale_view()
ax3.set_title('RegularPolyCollection using offsets')
Als sechster Schritt erstellen wir eine RegularPolyCollection mit Verschiebungen. Wir werden die RegularPolyCollection verwenden, um regelmäßige Polygone mit Verschiebungen zu erstellen. Wir werden auch die offset_transform verwenden, um die Positionen der Polygone festzulegen.
Erstellen aufeinanderfolgender Datenverschiebungen
## Simulieren einer Reihe von Ozeanstromprofilen, die sukzessive
## um 0,1 m/s versetzt werden, sodass sie das bilden, was man manchmal
## als "Wasserfall"-Diagramm oder "Stagger"-Diagramm bezeichnet.
nverts = 60
ncurves = 20
offs = (0,1, 0,0)
yy = np.linspace(0, 2*np.pi, nverts)
ym = np.max(yy)
xx = (0,2 + (ym - yy) / ym) ** 2 * np.cos(yy - 0,4) * 0,5
segs = []
for i in range(ncurves):
xxx = xx + 0,02*rs.randn(nverts)
curve = np.column_stack([xxx, yy * 100])
segs.append(curve)
col = collections.LineCollection(segs, offsets=offs)
ax4.add_collection(col, autolim=True)
col.set_color(colors)
ax4.autoscale_view()
ax4.set_title('Successive data offsets')
ax4.set_xlabel('Zonal velocity component (m/s)')
ax4.set_ylabel('Depth (m)')
ax4.set_ylim(ax4.get_ylim()[::-1])
Als siebter Schritt werden aufeinanderfolgende Datenverschiebungen erstellt. Wir werden die LineCollection verwenden, um Kurven mit aufeinanderfolgenden Verschiebungen zu erstellen.
Zusammenfassung
In diesem Tutorial haben wir Ihnen gezeigt, wie Sie Matplotlib-Collection verwenden, um Visualisierungen zu erstellen. Sie haben gelernt, wie Sie LineCollection, PolyCollection und RegularPolyCollection verwenden, um Kurven und Polygone zu erstellen. Sie haben auch gelernt, wie Sie die offsets- und offset_transform-Schlüsselwortargumente von LineCollection und PolyCollection verwenden, um die Positionen der Spiralen festzulegen.