Gefüllte Konturplots mit Matplotlib

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

In diesem Tutorial lernen wir, wie man gefüllte Konturplots mit der contourf-Methode aus der Matplotlib-Bibliothek erstellt. Wir werden behandeln, wie man gefüllte Konturen mit automatischen und expliziten Ebenen erstellt, und wie man die Farbskala und die Erweiterungseinstellungen einstellt.

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 öffnen.

Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund von 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, und wir werden das Problem für Sie prompt beheben.

Bibliotheken importieren und Daten erstellen

Zunächst müssen wir die erforderlichen Bibliotheken importieren und einige Daten zum Plotten erstellen.

import matplotlib.pyplot as plt
import numpy as np

## Create data
origin = 'lower'
delta = 0.025
x = y = np.arange(-3.0, 3.01, delta)
X, Y = np.meshgrid(x, y)
Z1 = np.exp(-X**2 - Y**2)
Z2 = np.exp(-(X - 1)**2 - (Y - 1)**2)
Z = (Z1 - Z2) * 2

Gefüllte Kontur mit automatischen Ebenen erstellen

Als nächstes erstellen wir einen gefüllten Konturplot mit automatischen Ebenen. Wir verwenden die contourf-Methode mit dem cmap-Parameter auf plt.cm.bone gesetzt, um die Farbskala anzugeben. Wir fügen auch Konturlinien mit der contour-Methode hinzu und übergeben einen Teil der für die gefüllten Konturen verwendeten Konturebenen.

## Create filled contour with automatic levels
fig, ax = plt.subplots()
CS = ax.contourf(X, Y, Z, 10, cmap=plt.cm.bone, origin=origin)
CS2 = ax.contour(CS, levels=CS.levels[::2], colors='r', origin=origin)

## Add title, axis labels, and colorbar
ax.set_title('Filled Contour with Automatic Levels')
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
cbar = fig.colorbar(CS)
cbar.ax.set_ylabel('Z Label')
cbar.add_lines(CS2)

## Show plot
plt.show()

Gefüllte Kontur mit expliziten Ebenen erstellen

Jetzt erstellen wir einen gefüllten Konturplot mit expliziten Ebenen. Wir verwenden die contourf-Methode mit dem levels-Parameter auf eine Liste von Werten gesetzt, um die Konturebenen anzugeben. Wir setzen auch die Farbskala auf eine Liste von Farben und den extend-Parameter auf 'both', um Werte außerhalb des Bereichs der Ebenen anzuzeigen.

## Create filled contour with explicit levels
fig, ax = plt.subplots()
levels = [-1.5, -1, -0.5, 0, 0.5, 1]
CS = ax.contourf(X, Y, Z, levels, colors=('r', 'g', 'b'),
                 origin=origin, extend='both')
CS2 = ax.contour(X, Y, Z, levels, colors=('k',),
                 linewidths=(3,), origin=origin)

## Add title, axis labels, and colorbar
ax.set_title('Filled Contour with Explicit Levels')
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
cbar = fig.colorbar(CS)
cbar.ax.set_ylabel('Z Label')

## Show plot
plt.show()

Farbskala und Erweiterungseinstellungen festlegen

Schließlich werden wir die Farbskala und die Erweiterungseinstellungen festlegen. Wir verwenden die with_extremes-Methode, um die Farben für Werte unterhalb und überhalb des Bereichs der Ebenen festzulegen. Wir erstellen auch vier Teilplots, um die vier möglichen extend-Einstellungen zu zeigen: 'neither', 'both', 'min' und 'max'.

## Set colormap and extend settings
extends = ["neither", "both", "min", "max"]
cmap = plt.colormaps["winter"].with_extremes(under="magenta", over="yellow")

## Create subplots with different extend settings
fig, axs = plt.subplots(2, 2, layout="constrained")
for ax, extend in zip(axs.flat, extends):
    cs = ax.contourf(X, Y, Z, levels, cmap=cmap, extend=extend, origin=origin)
    fig.colorbar(cs, ax=ax, shrink=0.9)
    ax.set_title("extend = %s" % extend)
    ax.locator_params(nbins=4)

## Show plot
plt.show()

Zusammenfassung

In diesem Tutorial haben wir gelernt, wie man gefüllte Konturplots mit der contourf-Methode in der Matplotlib-Bibliothek erstellt. Wir haben gesehen, wie man gefüllte Konturen mit automatischen und expliziten Ebenen erstellt, und wie man die Farbskala und die Erweiterungseinstellungen festlegt. Mit diesen Fähigkeiten können Sie schöne und informative Konturplots für Ihre Daten erstellen.