Matplotlib Visualisierung mit Collections

Beginner

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

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.