2015-08-26 11 views
7

Ich versuche, Daten von CSV-Datei in eine Heatmap zu übersetzen. Für den Moment sieht meine Heatmap wie folgt aus: enter image description hereHinzufügen einer Legende zu meinem Heatmap

Aber es fehlt eine Legende! Dies ist mein Code:

import matplotlib.pyplot as plt 
import numpy as np 

column_labels = list(range(0,24)) 
row_labels = ["Lundi", 
       "Mardi", 
       "Mercredi", 
       "Jeudi", 
       "Vendredi", 
       "Samedi", 
       "Dimanche"] 
data = np.array([ 
       [0,0,0,0,0,0,0,0,0,0,434,560,650,340,980,880,434,434,0,0,0,0,0,0], 
       [0,0,0,0,0,0,0,434,560,0,650,0,0,0,0,340,980,0,0,0,880,0,434,343], 
       [0,0,0,0,0,0,0,0,0,0,434,560,650,340,980,880,434,434,0,0,0,0,0,0], 
       [0,0,0,0,0,0,0,434,560,0,650,0,0,0,0,340,980,0,0,0,880,0,434,343], 
       [0,0,0,0,0,0,0,0,0,0,434,560,650,340,980,880,434,434,0,0,0,0,0,0], 
       [0,0,0,0,0,0,0,434,560,0,650,0,0,0,0,340,980,0,0,0,880,0,434,343], 
       [0,0,0,0,0,0,0,0,0,0,434,560,650,340,980,880,434,434,0,0,0,0,0,0] 
       ]) 
fig, axis = plt.subplots() # il me semble que c'est une bonne habitude de faire supbplots 
heatmap = axis.pcolor(data, cmap=plt.cm.Blues) # heatmap contient les valeurs 

axis.set_yticks(np.arange(data.shape[0])+0.5, minor=False) 
axis.set_xticks(np.arange(data.shape[1])+0.5, minor=False) 

axis.invert_yaxis() 

axis.set_yticklabels(row_labels, minor=False) 
axis.set_xticklabels(column_labels, minor=False) 

fig.set_size_inches(11.03, 3.5) 

plt.savefig('test.png', dpi=100) 

Wie kann ich eine Legende zu diesem Grundstück haben? Wie in diesem: Heatmap made in javascript

Vielen Dank für Ihre Hilfe!

+0

Ich bin nicht vertraut mit Heatmaps verwenden, aber für plt.imshow benutze ich nur plt.legend. Wenn das nicht funktioniert, können Sie unter Umständen nur ein Unterdiagramm mit einer 1D-Heatmap erstellen, wobei die Eingabe nur eine Liste von 0 bis zu Ihrer höchsten Nummer ist. – BlivetWidget

Antwort

14

Es klingt wie, was Sie wollen, ist eine Farbleiste. Sobald Sie Ihre Heatmap erstellt haben, können Sie plt.colorbar(heatmap) verwenden, um eine Farbleiste hinzuzufügen.

Heatmap with colorbar