Python 3.x 如何使用heatmap seaborn子地块Python 3.6.0中的差异间隔值自定义cmap中的每种颜色?

Python 3.x 如何使用heatmap seaborn子地块Python 3.6.0中的差异间隔值自定义cmap中的每种颜色?,python-3.x,colors,seaborn,heatmap,subplot,Python 3.x,Colors,Seaborn,Heatmap,Subplot,我在Python3.6.0中使用了heatmap seaborn的子地块 import seaborn as sb import matplotlib.pyplot as plt data = [[1, 1.5, 6], [4, 1.6, 8], [0, 1.7, 10] ] cmap = ["#0416FF", "#0094FF", "#00DAFF", "#006600", "#00A305"] heat_map = sb.heatmap(d

我在Python3.6.0中使用了heatmap seaborn的子地块

import seaborn as sb
import matplotlib.pyplot as plt
data = [[1, 1.5, 6],
        [4, 1.6, 8],
        [0, 1.7, 10]
        ]

cmap = ["#0416FF", "#0094FF", "#00DAFF", "#006600", "#00A305"]
heat_map = sb.heatmap(data, cmap=cmap)
plt.show()

但我想用如下等效范围数据值自定义cbar中的每种颜色:当数据值从0到1时,单元格将着色#0416FF,数据值从1到5时,单元格将着色#0094FF,数据值从5到8时,单元格将着色#00A305。。。这意味着cbar中的每种颜色将等效于差分间隔数据值。我该怎么做呢?

一种方法是创建一次深蓝色、4次浅蓝色和3次绿色的颜色列表。要设置
vmin=0
vmax=8
将所有值钳制到所需范围

下面的代码就是这样做的。这些值作为文本添加,以便轻松检查正在发生的情况

导入seaborn作为sns
将matplotlib.pyplot作为plt导入
数据=[[1,1.5,6],
[4, 1.6, 8],
[0, 1.7, 10]]
颜色=[“0416FF”、*([“0094FF”]*4)、*([“00A305”]*3]
热图=sns.heatmap(数据,cmap=colors,vmin=0,vmax=8)
ax=plt.gca()
对于范围内的i(len(数据)):
对于范围内的j(len(数据[0]):
ax.text(j+0.5,i+0.5,数据[i][j],color='gold',ha='center',va='center',fontsize=20)