我如何使用热图 seaborn 子图 Python 3.6.0 中的差异间隔值自定义 cmap 中的每种颜色?

How I customize each color in cmap with difference interval values in heatmap seaborn subplot Python 3.6.0?

我在 Python 3.6.0

中有一个带有热图 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=0vmax=8 以将所有值限制在所需范围内。

下面的代码就是这样做的。这些值以文本形式添加,以便轻松检查发生了什么。

import seaborn as sns
import matplotlib.pyplot as plt

data = [[1, 1.5, 6],
        [4, 1.6, 8],
        [0, 1.7, 10]]
colors = ["#0416FF", *(["#0094FF"]*4), *(["#00A305"]*3)]
heat_map = sns.heatmap(data, cmap=colors, vmin=0, vmax=8)
ax = plt.gca()
for i in range(len(data)):
    for j in range(len(data[0])):
        ax.text(j+0.5, i+0.5, data[i][j], color='gold', ha='center', va='center', fontsize=20)