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

求助:如何调整柱状图Y轴的Bin Size以优化可视化效果?

调整柱状图Y轴刻度间隔的方法

你可以通过Matplotlib的刻度设置功能调整Y轴刻度间隔,让图表展示更清晰。下面是两种实用的修改方案,任选其一即可:

方法一:直接指定固定刻度

import matplotlib.pyplot as plt
import pandas as pd

age_occ = df_rename.groupby(['Age', 'Occupation'])['Occupation'].count().unstack('Age').fillna(0)
ax_age_occ = age_occ.plot.bar(figsize=(15,7),stacked=False)
plt.ylabel('Count')
plt.xlabel('Occupation')

# 自定义Y轴刻度,示例设置为0、50、100...可根据你的数据范围调整
ax_age_occ.set_yticks([0, 50, 100, 150, 200, 250])
# 可选:强制刻度显示为整数,避免小数干扰
ax_age_occ.yaxis.set_major_formatter(plt.FuncFormatter(lambda x, _: int(x)))

方法二:按固定间隔自动生成刻度

如果不想手动罗列刻度值,用numpy可以自动匹配数据范围生成刻度:

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

age_occ = df_rename.groupby(['Age', 'Occupation'])['Occupation'].count().unstack('Age').fillna(0)
ax_age_occ = age_occ.plot.bar(figsize=(15,7),stacked=False)
plt.ylabel('Count')
plt.xlabel('Occupation')

# 设置刻度间隔为50,自动计算最大刻度值
max_count = age_occ.values.max()
yticks = np.arange(0, max_count + 50, 50)
ax_age_occ.set_yticks(yticks)
ax_age_occ.yaxis.set_major_formatter(plt.FuncFormatter(lambda x, _: int(x)))

补充说明

  • 你可以根据实际数据的人数范围,把示例中的间隔值(比如50)改成20、100等,让Y轴刻度分布更贴合你的数据。
  • 原图表是按职业分组的多系列柱状图,展示不同年龄层的人数分布,调整刻度后能更直观地对比各职业的人数差异。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 18:55:27