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:
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:
Ich hoffe, dass alles einen Sinn ergibt, und ich würde mich über jede Hilfe freuen, die jemand geben kann.
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.
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.