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

Matplotlib绘制双混淆矩阵子图尺寸不一且有多余颜色条如何解决

双混淆矩阵子图尺寸不一致问题解决

问题原因

skplt.metrics.plot_confusion_matrix默认会为每个绘图实例生成独立的颜色条,你当前两个子图都生成了各自的颜色条,颜色条占用了子图的分配空间,才导致两个子图的绘图区域尺寸不一致。

解决方法

方案1:删除所有颜色条(满足删除多余颜色条的需求,子图自动对齐)

给两个plot_confusion_matrix调用都添加cbar=False参数关闭颜色条即可,修改后代码如下:

fig, ax = plt.subplots(nrows=1, ncols=2, figsize = (18,8))
fig.suptitle('Matriz de Confusão')

# 新增cbar=False参数关闭颜色条
skplt.metrics.plot_confusion_matrix(y_test, y_pred_log, normalize=True, ax=ax[0], title='Regressão Logística', cbar=False)
skplt.metrics.plot_confusion_matrix(y_test, y_pred_tree, normalize=True, ax=ax[1], title='Árvore de decisão', cbar=False)

ax[0].xaxis.set_ticklabels(['Normal', 'Fraude']); ax[0].yaxis.set_ticklabels(['Normal', 'Fraude'])
ax[1].xaxis.set_ticklabels(['Normal', 'Fraude']); ax[1].yaxis.set_ticklabels(['Normal', 'Fraude'])

plt.show()

方案2:保留统一颜色条

如果你需要保留颜色条作为参考,可以只保留一个公共颜色条放在画布右侧,避免占用子图空间,保证两个子图尺寸一致,实现逻辑如下:

  • 两个子图绘图时都关闭颜色条
  • 单独在画布右侧新增颜色条区域,绑定其中一个混淆矩阵的色阶数据即可。

内容的提问来源于stack exchange,提问作者letícia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 09:27:03