Benutzerdefinierte Anmerkung Seaborn Heatmap

8

Ich benutze Seaborn in Python, um eine Heatmap zu erstellen. Ich kann die Zellen mit den übergebenen Werten annotieren, aber ich möchte Anmerkungen hinzufügen, die bedeuten, was die Zelle bedeutet. Zum Beispiel würde ich, anstatt nur 0.000000 zu sehen, die entsprechende Bezeichnung sehen, zum Beispiel "Foo" oder 0.000000 (Foo) .

Die Seaborn-Dokumentation für die Heatmap-Funktion ist ein bisschen kryptisch mit dem Parameter, den ich glaube, ist der Schlüssel hier:

%Vor%

Ich habe versucht, annot_kws auf ein Wörterbuch der Aliase für die Werte zu setzen, d. h. {'Foo' : -0.231049060187, 'Bar' : 0.000000} , usw., aber ich erhalte einen AttributeError.

Hier ist mein Code (Ich habe das Daten-Array hier zur Reproduzierbarkeit manuell erstellt):

%Vor%

Hier ist die (Arbeits) Ausgabe, wenn ich den Parameter annot_kws nicht verwende:

Und hier die Stack-Trace für, wenn ich tun enthalten die annot_kws param:

%Vor%

Schließlich ist kws , das Attribut, das ich in der Zeile im Stack-Trace übergebe, das Wörterbuch und es sieht im Prinzip so aus:

%Vor%

Ich hoffe, dass alles einen Sinn ergibt, und ich würde mich über jede Hilfe freuen, die jemand geben kann.

    
Tgsmith61591 15.10.2015, 20:36
quelle

3 Antworten

13

Diese Funktion wurde gerade in der aktuellen Version von Seaborn 0.7.1 hinzugefügt.

  

Aus Seaborn-Updateverlauf :

     
    

Der Annot-Parameter von heatmap () akzeptiert jetzt zusätzlich zu einem booleschen Wert ein rechteckiges Dataset. Wenn ein Dataset übergeben wird, werden seine Werte für die Annotationen verwendet, während das Hauptdataset für die Heatmap-Zellenfarben verwendet wird.

  

Hier ist ein Beispiel

%Vor%

Beachten Sie, dass fmt = '' notwendig ist, wenn Sie nicht-numerische Beschriftungen verwenden, da der Standardwert fmt = '. 2g' ist, was nur für numerische Werte sinnvoll ist und zu einem Fehler bei Textbeschriftungen führen würde.

    
ojy 13.06.2016, 21:45
quelle
3

Ich glaube nicht, dass dies in der aktuellen Version möglich ist. Wenn Sie eine hack-y Workaround sind, könnten Sie Folgendes tun:

%Vor%

Beachten Sie, dass Sie möglicherweise ein Problem mit der Einfärbung Ihrer Textbeschriftungen haben. Hier habe ich eine benutzerdefinierte cmap erstellt, um alle Labels einheitlich schwarz zu erhalten.

    
Sebastian 31.10.2015 01:43
quelle
2

aanot_kws in Seaborn hat einen anderen Zweck, nämlich den Zugriff auf wie Annotationen angezeigt werden und nicht auf was angezeigt wird

%Vor%

    
Sergey Bushmanov 15.10.2015 21:37
quelle

Tags und Links