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

绘制特征重要性时如何在X轴显示对应列名?

替换特征重要性柱状图X轴序号为列名的解决方案

当前代码中make_classification生成的X是无列名的numpy数组,要把X轴的序号换成列名,只需两步:给特征定义列名,再修改打印和绘图逻辑。

修改后的完整代码

from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
from matplotlib import pyplot

# 生成数据
X, y = make_classification(n_samples=2700, n_features=60, 
n_informative=5, n_redundant=5, random_state=1)

# 1. 定义特征列名,可自定义命名规则
feature_names = [f"Feature_{col}" for col in range(X.shape[1])]

model = LogisticRegression()
model.fit(X, y)
importance = model.coef_[0]

# 2. 打印时用列名代替序号
for i,v in enumerate(importance):
    print(f'Feature: {feature_names[i]}, Score: %.5f' % v)

# 3. 绘图时传入列名作为X轴标签,并旋转避免重叠
pyplot.bar(feature_names, importance)
pyplot.xticks(rotation=90)  # 旋转X轴标签,防止60个特征名重叠
pyplot.tight_layout()  # 自动调整布局,避免标签被截断
pyplot.show()

关键改动说明

  • 定义列名:用列表推导式生成和特征数量匹配的列名,也可以根据业务需求自定义命名(比如["f1", "f2", ...])。
  • 打印逻辑:把原代码中的序号替换为feature_names[i],直接输出列名。
  • 绘图调整:pyplot.bar()的第一个参数传入列名列表,同时添加旋转和布局调整,解决多特征名重叠、截断的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 18:15:48