Erstellen von Konturplots mit Python 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

Dieses Lab ist ein Schritt-für-Schritt-Tutorial zum Erstellen von Konturplots mit Python Matplotlib. Konturplots eignen sich zur Visualisierung dreidimensionaler Daten in zwei Dimensionen. In diesem Tutorial werden wir einfache Konturplots, Konturen auf einem Bild mit einer Farbskala für die Konturen und markierte Konturen veranschaulichen.

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 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, und wir werden das Problem für Sie prompt beheben.

Importieren der erforderlichen Bibliotheken

Bevor wir beginnen, unseren Konturplot zu erstellen, müssen wir die erforderlichen Bibliotheken importieren. Für dieses Tutorial werden wir numpy und matplotlib verwenden.

import matplotlib.pyplot as plt
import numpy as np

Daten erstellen

Wir müssen die Daten erstellen, die wir zum Erstellen des Konturplots verwenden werden. In diesem Beispiel werden wir zwei 2D-Gaußfunktionen erstellen.

delta = 0.025
x = np.arange(-3.0, 3.0, delta)
y = np.arange(-2.0, 2.0, 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

Erstellen eines einfachen Konturplots mit Beschriftungen

Jetzt, wo wir unsere Daten haben, können wir einen einfachen Konturplot mit Beschriftungen in Standardfarben erstellen.

fig, ax = plt.subplots()
CS = ax.contour(X, Y, Z)
ax.clabel(CS, inline=True, fontsize=10)
ax.set_title('Simplest default with labels')

Konturbeschriftungen manuell platzieren

Wir können auch Konturbeschriftungen manuell platzieren, indem wir eine Liste von Positionen (in Datenkoordinaten) angeben.

fig, ax = plt.subplots()
CS = ax.contour(X, Y, Z)
manual_locations = [
    (-1, -1.4), (-0.62, -0.7), (-2, 0.5), (1.7, 1.2), (2.0, 1.4), (2.4, 1.7)]
ax.clabel(CS, inline=True, fontsize=10, manual=manual_locations)
ax.set_title('labels at selected locations')

Setzen von Konturfarben

Wir können erzwingen, dass alle Konturen die gleiche Farbe haben, oder negative Konturen als durchgezogen statt gestrichelt festlegen.

fig, ax = plt.subplots()
CS = ax.contour(X, Y, Z, 6, colors='k')  ## Negative contours default to dashed.
ax.clabel(CS, fontsize=9, inline=True)
ax.set_title('Single color - negative contours dashed')
plt.rcParams['contour.negative_linestyle'] = 'solid'
fig, ax = plt.subplots()
CS = ax.contour(X, Y, Z, 6, colors='k')  ## Negative contours default to dashed.
ax.clabel(CS, fontsize=9, inline=True)
ax.set_title('Single color - negative contours solid')

Manuell Konturfarben angeben

Wir können auch die Farben der Kontur manuell angeben.

fig, ax = plt.subplots()
CS = ax.contour(X, Y, Z, 6,
                linewidths=np.arange(.5, 4,.5),
                colors=('r', 'green', 'blue', (1, 1, 0), '#afeeee', '0.5'),
                )
ax.clabel(CS, fontsize=9, inline=True)
ax.set_title('Crazy lines')

Verwenden einer Farbskala, um Konturfarben anzugeben

Wir können eine Farbskala verwenden, um die Farben für die Konturlinien anzugeben.

fig, ax = plt.subplots()
im = ax.imshow(Z, interpolation='bilinear', origin='lower',
               cmap=cm.gray, extent=(-3, 3, -2, 2))
levels = np.arange(-1.2, 1.6, 0.2)
CS = ax.contour(Z, levels, origin='lower', cmap='flag', extend='both',
                linewidths=2, extent=(-3, 3, -2, 2))

## Thicken the zero contour.
CS.collections[6].set_linewidth(4)

ax.clabel(CS, levels[1::2],  ## label every second level
          inline=True, fmt='%1.1f', fontsize=14)

## make a colorbar for the contour lines
CB = fig.colorbar(CS, shrink=0.8)

ax.set_title('Lines with colorbar')

## We can still add a colorbar for the image, too.
CBI = fig.colorbar(im, orientation='horizontal', shrink=0.8)

## This makes the original colorbar look a bit out of place,
## so let's improve its position.

l, b, w, h = ax.get_position().bounds
ll, bb, ww, hh = CB.ax.get_position().bounds
CB.ax.set_position([ll, b + 0.1*h, ww, h*0.8])

Zusammenfassung

In diesem Lab haben wir gelernt, wie man mit Python Matplotlib Konturplots erstellt. Wir haben dabei die Erstellung eines einfachen Konturplots mit Beschriftungen, das manuelle Platzieren von Konturbeschriftungen, das Setzen von Konturfarben, das manuelle Angeben von Konturfarben und das Verwenden einer Farbskala, um Konturfarben anzugeben, behandelt.