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

如何调整SHAP summary plots X轴解决数据拥挤显示不全问题

SHAP交叉验证特征重要度图X轴拥挤自动适配方案

直接在原有绘图代码基础上做以下修改即可,所有参数根据当前数据集特征数动态计算,换数据集不需要手动调值:

  • 替换固定画布尺寸为动态计算值
    原示例代码写死了画布宽高,特征数量多时宽度不足必然出现拥挤,替换为动态计算逻辑:
import matplotlib.pyplot as plt

# 替换为你代码中存储特征名的变量
feature_list = 你的特征名列表变量
n_features = len(feature_list)
# 单特征分配0.5英寸宽度,画布最小宽度设为8英寸,适配少特征场景
fig_width = max(8, n_features * 0.5)
# 交叉验证折数较多时也可按相同逻辑动态计算画布高度
fig, ax = plt.subplots(figsize=(fig_width, 7))
  • 添加X轴标签自动防重叠配置
    在所有绘图逻辑执行完成、调用plt.show()前加入以下代码,自动调整标签角度、对齐方式,避免文字扎堆:
# 自动旋转X轴标签并右对齐,防止旋转后文字错位
fig.autofmt_xdate(rotation=45, ha='right')
# 自动调整全图边距,避免标签、标题被画布边缘截断
plt.tight_layout()
# 特征名较长时可保留这行给底部留足空间,不需要可注释
fig.subplots_adjust(bottom=0.22)
  • (可选)特征数极多时自动稀疏刻度
    如果数据集特征数超过25个,全量显示标签依然拥挤,可加逻辑自动控制刻度显示间隔:
if n_features > 25:
    # 控制单屏最多显示25个X轴标签,自动计算间隔
    tick_step = round(n_features / 25)
    ax.set_xticks(ax.get_xticks()[::tick_step])

补充优化:如果需要进一步压缩空间,可以在autofmt_xdate前加ax.tick_params(axis='x', labelsize=9)缩小X轴标签字号。以上配置在特征数5-60个的场景下都可以自动适配,不需要手动调整参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 04:21:12