Pcolormesh-Gitter und Shading

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

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.