【发布时间】:2020-12-15 18:01:59
【问题描述】:
我创建了一个简单的 matplotlib 热图,其中如果单元格的值高于 2.3,则每个单元格将显示为红色或绿色。
现在,我想拥有它,而不是简单的红色或绿色
根据单元格的值与2.3 的差异程度,更深或更浅,例如1 的红色将比2.1 更深。
有没有办法做到这一点?到现在为止,我只能做到二进制,感谢this question。
ax1 = fig.add_subplot(111)
a = np.array([[0.8, 2.4, 2.5, 3.9],
[2.4, 0.0, 4.0, 1.0],
[1.1, 2.4, 0.8, 4.3],
[0.6, 0.0, 0.3, 0.0],
[0.7, 1.7, 0.6, 2.6]])
cmap = matplotlib.colors.ListedColormap(['#ff3d3d', '#74ff52'])
bounds = [np.amin(a), 2.3, np.amax(a)]
norm = matplotlib.colors.BoundaryNorm(bounds, cmap.N)
ax1.imshow(a, interpolation='none', cmap=cmap, norm=norm)
【问题讨论】:
标签: python python-3.x matplotlib