首页 > 解决方案 > Python seaborn.heatmap 手动定义类别

问题描述

我目前正在做一个项目,我必须绘制热图并且需要手动将颜色编码的类别设置为 3 个固定值(低于 4-> 黄色,介于 4 和 5-> 橙色,高于 5-> 红色) . 我该怎么做?这是一个最小的工作示例

import numpy as np
import seaborn as sns; sns.set()
m=[[4.09411765, 5.09411765, 6.09411765],[3.09411765, 4.09411765, 5.09411765], [2.09411765, 3.09411765, 4.09411765]]
m=np.matrix(m)
sns.heatmap(m,  annot=True)
plt.show()

非常感谢您提前。

标签: pythoncolorsseabornheatmap

解决方案


您可以创建ListedColormap。可以选择使用范围箭头绘制颜色条。

from matplotlib import pyplot as plt
from matplotlib.colors import ListedColormap
import numpy as np
import seaborn as sns; sns.set()

m = np.matrix([[4.09411765, 5.09411765, 6.09411765],
               [3.09411765, 4.09411765, 5.09411765],
               [2.09411765, 3.09411765, 4.09411765]])
sns.heatmap(m, annot=True, cmap=ListedColormap(['yellow', 'orange', 'r']), vmin=3, vmax=6,
            cbar_kws={'ticks': [4, 5], 'extend': 'both'})
plt.show()

结果图


推荐阅读