为我的热图添加图例
Posted
技术标签:
【中文标题】为我的热图添加图例【英文标题】:Add a legend to my heatmap plot 【发布时间】:2015-11-21 01:10:42 【问题描述】:我正在尝试将数据从 csv 文件转换为热图。目前,我的热图如下所示:
但它错过了一个传奇!这是我的代码:
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)
我怎样才能有这个情节的传奇?就像在这个:
非常感谢您的帮助!
【问题讨论】:
我不熟悉使用热图,但对于 plt.imshow 我只使用 plt.legend。如果这不起作用,您可以考虑只创建一个带有 1D 热图的子图,其中输入只是从 0 到您的最高数字的列表。 【参考方案1】:听起来你想要的是一个彩条。绘制热图后,您可以使用 plt.colorbar(heatmap)
添加颜色条。
【讨论】:
在哪里heatmap = plt.pcolor(data)
以上是关于为我的热图添加图例的主要内容,如果未能解决你的问题,请参考以下文章
使用 Matplotlib 在带有图例的热图中显示不同大小的圆圈