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

Logistic Regression混淆矩阵下方象限无法正常显示数值求助

解决Seaborn混淆矩阵下方象限数值显示不稳定的问题

问题场景

在Jupyter Notebook 7.0.8中,使用sklearn.metrics.confusion_matrix生成逻辑回归的混淆矩阵,再通过Seaborn的heatmap可视化时,下方两个象限的数值始终无法稳定显示。已确认所有依赖包为最新版本,更换数据集、降级版本均未解决问题。

用到的代码:

sns.heatmap(confusion_matrix(y_logistic_test, logistic_predictions), annot=True, fmt='d',  cmap='Blues')
plt.xlabel('Predicted')
plt.ylabel('Actual')
plt.title('Confusion Matrix - Logistic Regression')
plt.show()

解决办法

  • 强制调整布局
    在plt.show()前添加plt.tight_layout(),自动调整图表元素间距,避免数值被截断:
    sns.heatmap(confusion_matrix(y_logistic_test, logistic_predictions), annot=True, fmt='d',  cmap='Blues')
    plt.xlabel('Predicted')
    plt.ylabel('Actual')
    plt.title('Confusion Matrix - Logistic Regression')
    plt.tight_layout()
    plt.show()
    
  • 手动锁定坐标轴范围
    Seaborn的heatmap默认y轴为倒序,手动设置坐标轴范围可确保所有象限处于可视区域:
    cm = confusion_matrix(y_logistic_test, logistic_predictions)
    ax = sns.heatmap(cm, annot=True, fmt='d', cmap='Blues')
    plt.xlabel('Predicted')
    plt.ylabel('Actual')
    plt.title('Confusion Matrix - Logistic Regression')
    ax.set_xlim(0, cm.shape[1])
    ax.set_ylim(cm.shape[0], 0)
    plt.show()
    
  • 切换绘图后端
    在Notebook开头添加魔法命令更换渲染后端,比如:
    %matplotlib agg
    
    或%matplotlib qt5(需对应依赖支持),不同后端对heatmap标注的渲染兼容性存在差异。
  • 针对性调整Seaborn版本
    可测试seaborn==0.12.2或0.13.0版本,部分特定版本修复了heatmap标注显示的bug,比盲目降级更有针对性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 23:28:17