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
相关产品推荐
相关产品推荐

