2015-08-26 27 views
7

Sto provando a tradurre i dati dal file csv in una heatmap. Per il momento, la mia heatmap assomiglia a questa: enter image description hereAggiungere una legenda al grafico heatmap

Ma manca una leggenda! Questo è il mio codice:

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) 

Come posso avere una legenda per questa trama? Come in questo: Heatmap made in javascript

Grazie mille per il vostro aiuto!

+0

Non ho dimestichezza con l'utilizzo di mappe di calore, ma per plt.imshow mi basta usare plt.legend. Se ciò non funziona, potresti prendere in considerazione la creazione di una sottotrama con una heatmap 1D al di sotto di essa, dove input è solo una lista da 0 al tuo numero più alto. – BlivetWidget

risposta

14

Sembra che quello che vuoi sia una barra di colore. Una volta tracciata la mappa termica, è possibile utilizzare plt.colorbar(heatmap) per aggiungere una barra di colore.

Heatmap with colorbar

Problemi correlati