2016-12-15 2 views
2

Ich versuche das Python Seaborn-Paket, um eine Heatmap zu erstellen. Bisher konnte ich die Heatmap mit den darin enthaltenen Werten erstellen. Meine letzte Zeile im Code für die Heatmap zu schaffen ist:Wie man Text plus Wert in Python Seaborn Heatmap

sns.heatmap(result, annot=True, fmt='.2f', cmap='RdYlGn', ax=ax) 

Das resultierende Bild ist unten dargestellt: Heatmap with Values

Aber ich möchte auch neben den Werten einen String haben. Zum Beispiel: AAPL -1,25 statt -1,25 im zweiten Feld der zweiten Zeile. Gibt es eine Möglichkeit, den Text zu den Werten in der Heatmap hinzuzufügen?

Antwort

0

Sie können benutzerdefinierte Anmerkungen zu Ihrer Heatmap mit Seaborn hinzufügen. Dies ist im Prinzip nur ein Spezialfall von this answer. Die Idee besteht jetzt darin, die Zeichenfolge und die Zahlen zusammenzufassen, um die richtigen benutzerdefinierten Bezeichnungen zu erhalten. Wenn Sie ein Array strings von der gleichen Form wie result haben, die die jeweiligen Etiketten enthält können Sie sie hinzufügen, zusammen mit:

labels = (np.asarray(["{0} {1:.3f}".format(string, value) 
         for string, value in zip(strings.flatten(), 
               results.flatten())]) 
     ).reshape(3, 4) 

Jetzt können Sie dieses Label Array als benutzerdefinierte Etiketten verwenden für Ihre Heatmap:

sns.heatmap(result, annot=labels, fmt="", cmap='RdYlGn', ax=ax) 

Wenn Sie diese zusammen einige zufällige Eingangsdaten unter Verwendung der Code wie folgt aussehen:

import numpy as np 
import matplotlib.pyplot as plt 
import seaborn as sns 

results = np.random.rand(4, 3) 
strings = strings = np.asarray([['a', 'b', 'c'], 
           ['d', 'e', 'f'], 
           ['g', 'h', 'i'], 
           ['j', 'k', 'l']]) 

labels = (np.asarray(["{0} {1:.3f}".format(string, value) 
         for string, value in zip(strings.flatten(), 
               results.flatten())]) 
     ).reshape(4, 3) 

fig, ax = plt.subplots() 
sns.heatmap(results, annot=labels, fmt="", cmap='RdYlGn', ax=ax) 
plt.show() 

das Ergebnis wird wie folgt aussehen :

enter image description here

Wie Sie sehen können, werden nun die Saiten auf die Werte in den Anmerkungen korrekt hinzugefügt.