Heatmaps sind unschätzbar für die Visualisierung von Daten in einem zweidimensionalen Raster, wobei die Farbintensität die Größe jedes Wertes darstellt. Matplotlib, eine leistungsstarke Python-Bibliothek für Datenvisualisierung, bietet verschiedene Möglichkeiten, überzeugende Heatmaps zu erstellen. Dieser Artikel untersucht drei gängige Methoden: die Verwendung von imshow()
, die Nutzung der Seaborn-Bibliothek und den Einsatz von pcolormesh()
. Wir werden jede Methode mit klaren Beispielen und Erklärungen behandeln.
Inhaltsverzeichnis
imshow()
: Ein einfacher Ansatz- Seaborns
heatmap()
: Erweiterte Funktionalität pcolormesh()
: Für unregelmäßige Daten und präzise Kontrolle
imshow()
: Ein einfacher Ansatz
Matplotlibs imshow()
-Funktion bietet eine unkomplizierte Möglichkeit, Heatmaps zu generieren. Sie akzeptiert ein 2D-Array als Eingabe und ordnet Werte mithilfe einer ausgewählten Farbkarte Farben zu.
import matplotlib.pyplot as plt
import numpy as np
# Beispieldaten
data = np.random.rand(10, 10)
# Heatmap erstellen
plt.imshow(data, cmap='viridis')
# Colorbar hinzufügen
plt.colorbar(label='Wert')
# Beschriftungen und Titel hinzufügen
plt.xlabel('X-Achse')
plt.ylabel('Y-Achse')
plt.title('2D Heatmap mit imshow()')
# Diagramm anzeigen
plt.show()
Dieser Code erstellt eine Heatmap, bei der die Zellfarbintensität den entsprechenden Wert im data
-Array widerspiegelt. Das cmap
-Argument wählt die Farbkarte aus (z. B. ‚plasma‘, ‚magma‘, ‚inferno‘, ‚cividis‘). colorbar()
fügt eine Legende hinzu, die Farben Werten zuordnet.
Seaborns heatmap()
: Erweiterte Funktionalität
Seaborn, aufgebaut auf Matplotlib, bietet eine höherwertige Schnittstelle zum Erstellen statistisch aussagekräftiger und visuell ansprechender Diagramme, einschließlich Heatmaps. Seine heatmap()
-Funktion vereinfacht den Prozess und fügt nützliche Funktionen hinzu.
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
# Beispieldaten
data = np.random.rand(10, 10)
# Heatmap erstellen
sns.heatmap(data, annot=True, cmap='coolwarm', fmt=".2f")
# Titel hinzufügen
plt.title('2D Heatmap mit Seaborn')
# Diagramm anzeigen
plt.show()
Dieses Seaborn-Beispiel generiert eine ähnliche Heatmap, aber mit annot=True
werden numerische Werte in jeder Zelle angezeigt, was die Lesbarkeit verbessert. fmt
steuert die Formatierung der Annotationen.
pcolormesh()
: Für unregelmäßige Daten und präzise Kontrolle
Matplotlibs pcolormesh()
ist ideal für Heatmaps mit unregelmäßig verteilten Daten oder wenn eine präzise Kontrolle über Zellgrenzen erforderlich ist.
import matplotlib.pyplot as plt
import numpy as np
# Beispieldaten (mit meshgrid zur Demonstration)
x = np.arange(0, 10, 1)
y = np.arange(0, 10, 1)
X, Y = np.meshgrid(x, y)
data = np.sin(X) * np.cos(Y)
# Heatmap erstellen
plt.pcolormesh(X, Y, data, cmap='RdBu')
# Colorbar hinzufügen
plt.colorbar(label='Wert')
# Beschriftungen und Titel hinzufügen
plt.xlabel('X-Achse')
plt.ylabel('Y-Achse')
plt.title('2D Heatmap mit pcolormesh()')
# Diagramm anzeigen
plt.show()
Dieses Beispiel verwendet meshgrid
, um x- und y-Koordinatenraster zu erstellen, die Zellgrenzen für pcolormesh()
definieren. Dies bietet mehr Flexibilität als imshow()
. Die RdBu
-Farbkarte ist ein divergierendes Schema, das für Daten mit sowohl positiven als auch negativen Werten geeignet ist. Denken Sie daran, die notwendigen Bibliotheken mit pip install matplotlib seaborn
zu installieren.