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

Matplotlib问题:如何展示含零计数的全部X轴月份标签

解决X轴月份标签与柱状图映射错误的问题

你的问题核心是柱状图的x轴位置和月份索引没有对应:groupby后得到的df_grouped索引是5-11月,但你用range(len(df_grouped))生成x坐标时,会把5月放在x=0的位置,和你设置的0-11的xticks完全错位。

正确的做法是先补全所有12个月的数据(缺失月份填充0),再让柱状图的x轴直接对应月份数值,这样就能完美匹配标签:

修改后的完整代码

# 按月份统计次数
df_grouped = df.departureDate.groupby(df['departureDate'].dt.month).count()
# 重新索引为1-12月,缺失月份填充0
df_grouped = df_grouped.reindex(range(1, 13), fill_value=0)

# 绘制柱状图
f, (ax1) = plt.subplots(1, figsize=(10,5))
# 用月份索引作为x轴位置,确保每个柱子对应正确的月份标签
ax1.bar(df_grouped.index, df_grouped, alpha=0.5, color='b')
# 设置X轴刻度为1-12,显示全部月份
ax1.set_xticks(range(1, 13))
# 可选:给刻度添加月份名称,更直观
ax1.set_xticklabels(['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'])

关键说明

  1. reindex(range(1,13), fill_value=0):强制生成1到12的索引,没有统计数据的月份自动填充0,保证每个月份都有对应的数据点。
  2. 用df_grouped.index作为柱状图的x坐标:这样5月的数据会对应x=5的位置,和X轴的5月标签完全对齐,不会再出现错位。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 01:50:37