2015-06-25 12 views
5

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

+0

Vielen Dank diese Fragen zu stellen. Ich wollte gerade das hier posten. –

Antwort

5

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

enter image description here

+0

Vielen Dank war nur auf der Suche nach und war im Begriff, eine Frage zu stellen .. bekam Antwort ohne zu fragen. –

+0

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

+0

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