You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Seaborn混淆矩阵配色并添加真阳性等分类标签

Seaborn实现自定义混淆矩阵的方案

完全可以在Seaborn中实现你需要的效果,你只需要自定义颜色映射、自定义每个单元格的注释内容即可,完整可运行代码如下:

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap

# 你的混淆矩阵
cm = np.array([[2547,288],[ 255,216]])
# 自定义每个单元格的标注,顺序对应:TP、FN、FP、TN
annot_labels = [
    [f"True Positive\n{cm[0,0]}", f"False Negative\n{cm[0,1]}"],
    [f"False Positive\n{cm[1,0]}", f"True Negative\n{cm[1,1]}"]
]
# 颜色映射:分类正确为绿色,错误为红色,顺序对应:错误色、正确色
cmap = ListedColormap(['#ff9999', '#99ff99'])
# 构造颜色指示矩阵:正确的位置为1,错误的为0
color_mask = np.array([
    [1, 0],
    [0, 1]
])

fig, ax = plt.subplots(figsize=(12, 8))
# 绘制热力图,用color_mask控制颜色,传入自定义的标注数组
ax = sns.heatmap(color_mask, annot=annot_labels, cmap=cmap, fmt='', cbar=False)

ax.set_title('Seaborn Confusion Matrix with labels\n\n')
ax.set_xlabel('\nPredicted Values')
ax.set_ylabel('Actual Values ')

# 保留原有的坐标轴标签
ax.xaxis.set_ticklabels(['True','False'])
ax.yaxis.set_ticklabels(['True','False'])

plt.show()

代码说明

  • 我们构造了和混淆矩阵同尺寸的annot_labels数组,每个位置存储了对应分类名称和数值,作为热力图的自定义注释
  • 使用ListedColormap自定义只有红绿两种颜色的配色方案,color_mask矩阵用来标记每个位置属于正确分类还是错误分类,匹配对应颜色
  • 关闭了不需要的颜色条(cbar=False),和示例效果保持一致

运行上述代码即可得到和你需求完全一致的混淆矩阵效果。

内容的提问来源于stack exchange,提问作者Test

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 08:54:07