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

如何将SVM、LR、RF对应的三个混淆矩阵并排绘制?

实现SVM、LR、RF混淆矩阵并排展示

要把三个混淆矩阵并排展示,直接用matplotlib的子图布局功能即可,核心是通过plt.subplots创建统一的画布和子图,将每个混淆矩阵的热图绘制到对应子图上。同时注意修正原代码中LR模型的数据源错误(原代码里误将RF的矩阵当作LR的数据源)。

修改后的完整代码如下:

import seaborn as sn
import pandas as pd
import matplotlib.pyplot as plt

# 准备三个模型的混淆矩阵数据
svm_A = [[11,1], 
         [2,2]]
rf_A = [[12,0], 
        [3,1]]
lr_A = [[11,1], 
        [2,2]]

# 创建1行3列的子图布局,设置整体画布尺寸
fig, axes = plt.subplots(nrows=1, ncols=3, figsize=(18, 6))

# 绘制SVM混淆矩阵
df_svm = pd.DataFrame(svm_A, index=["0", "1"], columns=["0", "1"])
sn.heatmap(df_svm, annot=True, ax=axes[0])
axes[0].set_title("SVM 混淆矩阵")

# 绘制RF混淆矩阵
df_rf = pd.DataFrame(rf_A, index=["0", "1"], columns=["0", "1"])
sn.heatmap(df_rf, annot=True, ax=axes[1])
axes[1].set_title("RF 混淆矩阵")

# 绘制LR混淆矩阵(修正原代码的数据源错误)
df_lr = pd.DataFrame(lr_A, index=["0", "1"], columns=["0", "1"])
sn.heatmap(df_lr, annot=True, ax=axes[2])
axes[2].set_title("LR 混淆矩阵")

# 调整子图间距,避免标题和热图重叠
plt.tight_layout()
plt.show()

关键说明:

  • plt.subplots(nrows=1, ncols=3):创建1行3列的子图框架,axes是包含三个子图对象的列表,分别对应左、中、右三个位置
  • ax=axes[i]:指定每个heatmap绘制到对应的子图上
  • plt.tight_layout():自动调整子图间距,解决标题、坐标轴标签重叠的问题
  • 修正了原代码中LR模型的数据源错误,确保使用lr_A而非rf_A

内容的提问来源于stack exchange,提问作者ARWA ABDULKADER BASHANFAR

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 09:25:43