2016-06-02 9 views
6

Ich versuche, eine Tabelle von Prozentsätzen als Heatmap in Seaborn zu zeigen:Einheiten Anmerkung Heatmap in Seaborn Hinzufügen

sns.heatmap(S, annot=True, fmt=".1f", linewidths=1.0, square=1) 

Allerdings würde ich das Prozentzeichen wie nach jeder Nummer in der Heatmap Anmerkungen erscheinen . Das Flag fmt scheint nur Zahlenformatbezeichner zu akzeptieren. Gibt es eine Möglichkeit, dies entweder innerhalb von Seaborn oder mit einigen Matplotlib-Feinabstimmungen zu tun?

Antwort

7

Sie müssen alle Textwerte eines Heatmap iterieren und% Zeichen hinzufügen:

import matplotlib.pyplot as plt 
import seaborn as sns 
import numpy as np 
from matplotlib.ticker import FuncFormatter 

sns.set() 
fig, ax0 = plt.subplots(1,1) 
data = np.array([[10.01,20.20],[-0.23,0.],[23.1049,-100.000000]]) 
ax = sns.heatmap(data, annot=True, fmt = '.1f', square=1, linewidth=1.) 
for t in ax.texts: t.set_text(t.get_text() + " %") 
plt.show() 

enter image description here

+0

Ich möchte Prozentzeichen zu den Anmerkungen hinzufügen (z. B. 0,23% in Ihrer Figur), nicht zu der Farbleiste. – Jsl

+1

OK, schau dir das obige Beispiel an. – Serenity

+1

Converting '.1f' zu '.1%' löste das Problem für mich. –

3

Ersetzen Sie die ".1f" auf "0,1%". Und es sollte dein Problem lösen.