如何调整Python中SHAP依赖图的X轴文本大小以避免重叠
解决SHAP依赖图X轴文本重叠问题
问题描述
我使用以下代码生成SHAP依赖图:
for i in range(len(col_list)): shap.dependence_plot(i, shap_values, X.values, feature_names=X.columns, dot_size=10, interaction_index=None, x_jitter=-0.5)
生成的图表中X轴文本出现重叠(如150000与175000重叠),请问如何修改X轴文本的大小使其变小?
解决方案
SHAP依赖图基于Matplotlib渲染,你可以通过以下两种方式调整X轴文本大小:
方法1:单图实时调整
在绘图循环中调用Matplotlib的xticks()方法直接修改当前图表的X轴文本大小,同时配合tight_layout()优化布局:
import matplotlib.pyplot as plt for i in range(len(col_list)): shap.dependence_plot(i, shap_values, X.values, feature_names=X.columns, dot_size=10, interaction_index=None, x_jitter=-0.5) # 调整X轴刻度文本大小,数值可按需修改(如6、7、8) plt.xticks(fontsize=8) # 自动调整布局,减少元素重叠 plt.tight_layout()
方法2:全局统一设置
如果需要所有生成的SHAP图表都使用统一的轴文本大小,可以先设置Matplotlib的全局参数:
import matplotlib.pyplot as plt # 全局设置X、Y轴刻度文本大小 plt.rcParams['xtick.labelsize'] = 8 plt.rcParams['ytick.labelsize'] = 8 # 执行绘图循环 for i in range(len(col_list)): shap.dependence_plot(i, shap_values, X.values, feature_names=X.columns, dot_size=10, interaction_index=None, x_jitter=-0.5) plt.tight_layout()
说明
fontsize的数值可根据图表尺寸和重叠程度灵活调整,数值越小文本越紧凑;tight_layout()会自动调整图表内元素的间距,进一步降低重叠概率。
内容的提问来源于stack exchange,提问作者Giampaolo Levorato
相关产品推荐
相关产品推荐

