Matplotlib colorbar带有直方图

时间:2014-07-07 22:53:11

标签: matplotlib

我制作了一个数组x的直方图,每个条形图根据该区域中另一个属性y的平均值进行颜色编码。如何制作关联的颜色栏?

norm = matplotlib.colors.Normalize(vmin=np.min(y), vmax=np.max(y))
cmap = cm.jet
m = cm.ScalarMappable(norm=norm, cmap=cmap)

fig = plt.figure()
n, bins, patches= plt.hist(x, bins = np.arange(0,max_x) + 0.5)
for i in range(np.size(patches)):
    plt.setp(patches[i],color=m.to_rgba(y[i]))
plt.colorbar(norm=norm,cmap=cmap)
plt.show()

此颜色栏会返回错误消息"找不到用于创建彩条的可映射。首先定义一个可映射的图像(使用imshow)或轮廓集(使用contourf)。"

1 个答案:

答案 0 :(得分:0)

使用“ScalarMappable”找到了一种方法:

sm = plt.cm.ScalarMappable(cmap=cmap, norm=norm)
sm._A = []
plt.colorbar(sm)