如何在Pandas中设置数据集标签与刻度?条形图X轴标签缺失求助
解决Pandas条形图X轴刻度标签不显示的问题
我帮你梳理下问题所在,然后给出修正方案:
问题拆解
你当前遇到两个核心小问题:
- 颜色参数非法:
'deepbluesky'不是Matplotlib/Pandas支持的颜色值,正确拼写应该是'deepskyblue',也可以用十六进制色码比如#00BFFF替代。 - X轴刻度被主动清空:你写的
plt.xticks([], rotation = 'vertical')里,空列表[]直接移除了所有X轴刻度,自然看不到城市名称标签。
修正后的完整代码
假设你的数据集是这样构造的,我给出两种可行写法:
写法一:将城市列设为索引(推荐)
import pandas as pd import matplotlib.pyplot as plt # 构造你的数据集 data = { 'City': ['City1', 'City2', 'City3', 'City4'], 'Value': [1000, 1020, 940, 720] } df = pd.DataFrame(data).set_index('City') # 将City列设为索引,Pandas会自动用它做X轴标签 # 绘制条形图 df.plot.bar(color='deepskyblue', width=0.6) # width设为0.6更合理,原2会超出画布 plt.xticks(rotation='vertical') # 只保留旋转参数,不要传空列表 plt.xlabel('城市名称') plt.ylabel('数值') plt.title('各城市数值对比') plt.tight_layout() # 自动调整布局,避免标签被截断 plt.show()
写法二:手动指定X轴标签
如果你的DataFrame没有把City设为索引,也可以手动绑定标签:
import pandas as pd import matplotlib.pyplot as plt data = { 'City': ['City1', 'City2', 'City3', 'City4'], 'Value': [1000, 1020, 940, 720] } df = pd.DataFrame(data) # 指定x轴为City列 ax = df.plot.bar(x='City', y='Value', color='deepskyblue', width=0.6) # 手动设置X轴标签并旋转 ax.set_xticklabels(df['City'], rotation='vertical') plt.tight_layout() plt.show()
关键修改说明
- 修正颜色参数为合法值,避免绘图报错。
- 移除
plt.xticks中的空列表参数,保留默认刻度(也就是你的城市名称),只通过rotation控制标签角度。 - 调整
width参数到合理范围,避免条形图超出画布。 - 用
plt.tight_layout()防止标签被画布边缘截断。
这样就能正常显示每个城市的X轴刻度和标签啦!
内容的提问来源于stack exchange,提问作者Raptor795
相关产品推荐
相关产品推荐

