python - 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()
非常感谢您提前。
解决方案
您可以创建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()
推荐阅读
- angular - 如何动态更改 Angular 组件中使用的 html 文件?
- java - Java STX CDATA 解析
- hibernate - 在 Hibernate 中,hbm2ddl.auto = "update" 正在插入记录但也给出了一些异常?
- php - Laravel - ErrorException 未定义的变量
- sql - 在 MS SQL Management Studio 中的表中插入时间戳
- php - 如何打破 foreach 循环 - 数组索引
- jenkins - 这些停止 Jenkins 管道的方式有什么区别?
- php - 致命错误:未捕获的错误:在 app/code/DeviceDetector/Yaml/Spyc.php 中找不到类“Spyc”
- python - 是否可以将对象所属的所有者类作为属性引用?
- android - 适用于 android 8.0 及更高版本的 android 通话记录器