自定义颜色的离散值matplotlib热力图

3
我正在尝试使用Python生成热图,并根据每个单元格中的值自定义颜色。
data = [ [0,3,2,5],[2,3,3,0],...,[0,0,2,2]]
colors = {0:'red',2:'blue',3:'green',5:'purple'}

有人可以帮忙吗?

1个回答

2
这是一个演示它工作的最小化示例:
from matplotlib import colors
data = array([[1,2,3],[2,3,5], [3,1,2]])
cols = {1:'red',2:'blue',3:'green',5:'purple'}

cvr = colors.ColorConverter()
tmp = sorted(cols.keys())
cols_rgb = [cvr.to_rgb(cols[k]) for k in tmp]
intervals = array(tmp + [tmp[-1]+1]) - 0.5
cmap, norm = colors.from_levels_and_colors(intervals,cols_rgb)
plt.pcolor(data,cmap = cmap, norm = norm)

这是结果:
这里是结果:

输入图片描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接