7
Sto provando a tradurre i dati dal file csv in una heatmap. Per il momento, la mia heatmap assomiglia a questa: Aggiungere 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:
Grazie mille per il vostro aiuto!
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