Einführung
Matplotlib ist eine Datenvisualisierungsbibliothek für Python. Es bietet eine Vielzahl von Tools zur Erstellung von statischen, animierten und interaktiven Visualisierungen in Python. In diesem Lab werden wir lernen, wie man die Funktionen pcolormesh und pcolor in Matplotlib verwendet, um 2D-Gitter zu visualisieren.
Tipps für die VM
Nachdem der VM-Start abgeschlossen 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 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
Zunächst müssen wir die erforderlichen Bibliotheken, Matplotlib und NumPy, importieren, indem wir den folgenden Codeblock ausführen:
import matplotlib.pyplot as plt
import numpy as np
Daten für die Visualisierung erstellen
Als nächstes werden wir ein 2D-Gitter erstellen, das wir zur Visualisierung verwenden werden. Wir können ein Gitter mit der meshgrid-Funktion in NumPy erstellen. Die meshgrid-Funktion erstellt ein Gitter von Punkten aus zwei Vektoren, x und y, die die Koordinaten der Gitterpunkte repräsentieren. Wir werden ein Gitter von 5x5 Punkten mit dem folgenden Codeblock erstellen:
nrows = 5
ncols = 5
x = np.arange(ncols + 1)
y = np.arange(nrows + 1)
X, Y = np.meshgrid(x, y)
Z = X + Y
Flaches Shading
Die pcolormesh-Funktion in Matplotlib kann 2D-Gitter visualisieren. Die Gitterangabe mit den wenigsten Annahmen ist shading='flat' und wenn das Gitter in jeder Dimension um eins größer als die Daten ist, d.h. die Form (M+1, N+1) hat. In diesem Fall geben X und Y die Ecken der Vierecke an, die mit den Werten in Z gefärbt werden. Wir können das Gitter mit dem folgenden Codeblock visualisieren:
fig, ax = plt.subplots()
ax.pcolormesh(X, Y, Z, shading='flat', cmap='viridis')
ax.set_title('Flat Shading')
plt.show()
Flaches Shading, Gitter mit derselben Form
Wenn das Gitter in jeder Dimension die gleiche Form wie die Daten hat, können wir shading='flat' nicht verwenden. Historisch hat Matplotlib in diesem Fall die letzte Zeile und Spalte von Z stillschweigend weggelassen, um dem Verhalten von Matlab zu entsprechen. Wenn dieses Verhalten immer noch gewünscht ist, lassen Sie einfach die letzte Zeile und Spalte manuell weg. Wir können das Gitter mit dem folgenden Codeblock visualisieren:
fig, ax = plt.subplots()
ax.pcolormesh(x, y, Z[:-1, :-1], shading='flat', cmap='viridis')
ax.set_title('Flat Shading, Same Shape Grid')
plt.show()
Nächstes Shading, Gitter mit derselben Form
Normalerweise bedeutet das Weglassen einer Zeile und Spalte von Daten nicht, was der Benutzer meint, wenn er X, Y und Z alle die gleiche Form hat. Für diesen Fall erlaubt Matplotlib shading='nearest' und zentriert die gefärbten Vierecke auf den Gitterpunkten. Wenn ein Gitter mit der falschen Form mit shading='nearest' übergeben wird, wird ein Fehler ausgelöst. Wir können das Gitter mit dem folgenden Codeblock visualisieren:
fig, ax = plt.subplots()
ax.pcolormesh(X, Y, Z, shading='nearest', cmap='viridis')
ax.set_title('Nearest Shading, Same Shape Grid')
plt.show()
Automatisches Shading
Es ist möglich, dass der Benutzer möchte, dass der Code automatisch wählt, welches zu verwenden. In diesem Fall wird shading='auto' entscheiden, ob flat oder nearest Shading verwendet werden soll, basierend auf den Formen von X, Y und Z. Wir können das Gitter mit dem folgenden Codeblock visualisieren:
fig, ax = plt.subplots()
ax.pcolormesh(x, y, Z, shading='auto', cmap='viridis')
ax.set_title('Auto Shading')
plt.show()
Gouraud-Shading
Gouraud-Shading kann ebenfalls angegeben werden, wobei die Farbe in den Vierecken zwischen den Gitterpunkten linear interpoliert wird. Die Formen von X, Y, Z müssen gleich sein. Wir können das Gitter mit dem folgenden Codeblock visualisieren:
fig, ax = plt.subplots()
ax.pcolormesh(X, Y, Z, shading='gouraud', cmap='viridis')
ax.set_title('Gouraud Shading')
plt.show()
Zusammenfassung
In diesem Lab haben wir gelernt, wie man die Funktionen pcolormesh und pcolor in Matplotlib verwendet, um 2D-Gitter zu visualisieren. Wir haben uns mit verschiedenen Shading-Optionen vertraut gemacht, darunter flat, nearest, auto und gouraud. Wir haben auch gelernt, wie man ein 2D-Gitter mit der meshgrid-Funktion in NumPy erstellt.