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

Pandas绘制柱状图x轴标签重叠,如何修改数据类型或间隔显示标签

解决方案

你遇到的x轴标签拥挤问题,核心原因是budget为连续数值型字段,直接按单个值分组会产生数百个分类,导致标签堆叠。以下是两种可行的修改方案:

方案1:保留原有分组逻辑,间隔显示x轴标签

在你原有绘图代码后添加x轴标签控制逻辑即可,同时解决类型转换报错问题:

# 你原有绘图代码保持不变
budget_pop.plot(kind='bar' ,x='budget', y='popularity', figsize=(20,10), xlabel='Budget in Dollars', ylabel='Average Popularity', rot=0,  legend=True)

# 新增以下代码控制标签显示
ax = plt.gca()
# n为间隔显示的步长,可根据需求调整数值
n = 5
# 每隔n个位置显示一个标签,同时将预算值转为整数格式
plt.xticks(
    ticks = range(0, len(budget_pop.index), n),
    labels = budget_pop.index[::n].astype(int),
    # 可选:将标签旋转45度避免剩余标签仍有重叠
    rotation = 45,
    ha = 'right'
)
# 自动调整布局避免标签被截断
plt.tight_layout()
plt.show()

方案2:预算数值分箱分组(更推荐)

连续数值型字段做统计分析时,按区间分组的统计结果更具备参考价值,也从根源上解决了x轴分类过多的问题:

# 替换原有分组逻辑,新增分箱步骤
# 将budget划分为10个等宽区间,也可传入自定义区间列表如[0, 1e7, 3e7, 5e7, 1e8, 3e8]自定义分组规则
df['budget_bin'] = pd.cut(df['budget'], bins=10)
# 按分箱后的区间分组计算popularity均值
budget_pop = df.groupby('budget_bin')['popularity'].mean()

# 绘图代码默认只有10个x轴标签,不会出现堆叠问题
budget_pop.plot(kind='bar', figsize=(20,10), xlabel='Budget in Dollars', ylabel='Average Popularity', rot=45, ha='right', legend=True)
plt.tight_layout()
plt.show()

内容的提问来源于stack exchange,提问作者hunter101-360

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:30:06