使用python绘制绘制混淆矩阵自定义样式
时间: 2025-06-20 13:54:15 浏览: 5
### 自定义样式混淆矩阵的实现
要创建带有自定义样式的混淆矩阵,可以利用 `Matplotlib` 和 `Seaborn` 提供的功能来增强视觉效果。以下是详细的解决方案:
#### 数据准备
首先需要生成或提供一个混淆矩阵的数据结构。通常是一个二维数组或者 Pandas DataFrame 表格形式。
```python
import numpy as np
import pandas as pd
from sklearn.metrics import confusion_matrix
import seaborn as sns
import matplotlib.pyplot as plt
# 假设我们有真实标签和预测标签
y_true = ["cat", "dog", "rabbit", "cat", "dog", "rabbit", "cat", "dog"]
y_pred = ["cat", "dog", "cat", "rabbit", "dog", "rabbit", "cat", "cat"]
# 计算混淆矩阵
cm = confusion_matrix(y_true, y_pred, labels=["cat", "dog", "rabbit"])
df_cm = pd.DataFrame(cm, index=["cat", "dog", "rabbit"], columns=["cat", "dog", "rabbit"]) # 转换为DataFrame以便于绘图
```
上述代码片段展示了如何通过 Scikit-Learn 的 `confusion_matrix()` 函数计算混淆矩阵并将其转换成 Pandas DataFrame 形式[^1]。
#### 使用 Seaborn 进行可视化
为了使混淆矩阵更加美观且易于理解,可以通过调整颜色映射、字体大小以及单元格内的标注等方式来自定义样式。
```python
plt.figure(figsize=(8, 6)) # 设置画布尺寸
sns.set(font_scale=1.2) # 字体放大比例
# 绘制热力图表示混淆矩阵
heatmap = sns.heatmap(df_cm, annot=True, fmt="d", cmap="Blues", cbar=False)
# 添加标题与坐标轴名称
plt.title("Confusion Matrix with Custom Style", fontsize=16)
plt.xlabel("Predicted Label", fontsize=14)
plt.ylabel("True Label", fontsize=14)
# 显示图像
plt.show()
```
此部分代码实现了以下功能:
- 利用 `sns.heatmap()` 方法绘制热力图,并设置参数使其显示数值 (`annot=True`) 并指定整数格式 (`fmt="d"`)。
- 配置调色板为蓝色系 (`cmap="Blues"`)[^3]。
- 移除右侧的颜色条以简化布局 (`cbar=False`)。
- 对整个图表进行了美化处理,包括增大字体规模和设定合适的标题及说明文字[^2]。
#### 结果展示
最终得到的是一个清晰易读的混淆矩阵图形,其中每个方块代表对应类别之间的匹配数量,同时具备良好的可解释性和吸引力。
---
阅读全文
相关推荐
















