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

如何将Matplotlib图表X轴标签替换为对应Feature名称?

解决Matplotlib图表X轴显示Feature名称的问题

方法一:直接使用原DataFrame绘图(推荐)

不需要转置DataFrame,直接提取feature列作为X轴数据,score列作为Y轴数据,代码更简洁直观:

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame(
    {'feature': ['abc','bcd','abd','dax','cax','bax','def','deg','abe','cde'],
 'score': [0.7732,0.8412,0.8626,0.8705,0.8811,0.8851,0.8884,0.8922,0.8934,0.8949]}
)

# 直接用feature作为X轴,score作为Y轴
plt.plot(df['feature'], df['score'], color="blue", marker="o")
plt.xlabel('Feature')
plt.ylabel('Score')
plt.xticks(rotation=45)  # 可选:旋转标签避免重叠
plt.show()

方法二:基于原有代码修改X轴标签

如果想保留你原来的转置逻辑,只需通过plt.xticks()手动绑定刻度和对应的feature名称:

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame(
    {'feature': ['abc','bcd','abd','dax','cax','bax','def','deg','abe','cde'],
 'score': [0.7732,0.8412,0.8626,0.8705,0.8811,0.8851,0.8884,0.8922,0.8934,0.8949]}
)

m = df.T
k_feat = sorted(m.keys())
avg = [m[k]["score"] for k in k_feat]
# 获取对应索引的feature名称
feature_names = [m[k]["feature"] for k in k_feat]

plt.plot(k_feat, avg, color="blue", marker="o")
# 设置X轴刻度为原索引,替换标签为feature名称
plt.xticks(ticks=k_feat, labels=feature_names, rotation=45)
plt.xlabel('Feature')
plt.ylabel('Score')
plt.show()

两种方法都能让X轴显示对应的feature名称,添加rotation=45是为了防止标签过长时重叠,可根据实际需求调整旋转角度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 04:30:45