Es scheint mir die Heatmap-Funktion wird auf den Datenrahmen in seiner Gesamtheit angewendet. Was ist, wenn ich die Heatmap nur für einen bestimmten Satz von Spalten aus meinem Datensatz verwenden möchte? Ich könnte mir vorstellen, dass dies durch die intelligente Verwendung von cmap erreicht werden kann, aber es scheint nicht zu funktionieren.Seaborn Heatmap nach Spalte
Antwort
Pass des gewünschten Unterdatenrahmen zu seaborn.heatmap
:
seaborn.heatmap(df[[col1, col2]], ...)
df[[col1, col2, ..., coln]]
liefert einen Datenrahmen der col1
Spalten zusammengesetzt, col2
, ... coln
von df
. Beachten Sie die doppelten Klammern.
Wenn Sie nur bestimmte Werte hervorheben möchten und zeichnen Sie die Heatmap, als ob alle anderen Werte sind Null, Sie eine Kopie der Datenrahmen machen könnte und diese Werte auf Null vor dem Aufruf heatmap
gesetzt. Zum Beispiel, Ändern the example from the docs,
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import seaborn.matrix as smatrix
sns.set()
flights_long = sns.load_dataset("flights")
flights = flights_long.pivot("month", "year", "passengers")
flights = flights.reindex(flights_long.iloc[:12].month)
columns = [1953,1955]
myflights = flights.copy()
mask = myflights.columns.isin(columns)
myflights.loc[:, ~mask] = 0
arr = flights.values
vmin, vmax = arr.min(), arr.max()
sns.heatmap(myflights, annot=True, fmt="d", vmin=vmin, vmax=vmax)
plt.show()
ergibt
Vielen Dank war nur auf der Suche nach und war im Begriff, eine Frage zu stellen .. bekam Antwort ohne zu fragen. –
Vielen Dank für Ihre schnelle Antwort. Ich habe es tatsächlich versucht, aber das würde nur die ausgewählte (n) Spalte (n) darstellen, aber nicht den gesamten Datensatz, nein? Ich möchte nur die Heatmap auf die ausgewählte (n) Spalte (n) anwenden, aber andere Spalten müssen noch sichtbar sein. – user4704759
Was meinen Sie mit den "anderen Spalten müssen noch sichtbar sein"? Soll heißen, dass sie so gezeichnet werden sollten, als ob der Wert in jeder Zelle gleich Null wäre? – unutbu
Vielen Dank diese Fragen zu stellen. Ich wollte gerade das hier posten. –