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
相关产品推荐
相关产品推荐

