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

Plotly月度柱状图x轴标签错误:10月被标为2021年11月如何修复

问题底层原因
  • pandas通过pd.Grouper(freq='M')分组生成的createdAt字段为对应月份最后一天的datetime类型数据,例如10月的订单汇总数据对应的时间值为2021-10-31,11月的汇总数据对应2021-11-30。
  • Plotly的时间类型坐标轴默认采用自动刻度计算逻辑:不会优先匹配实际数据点的位置,而是根据坐标轴的总时间跨度自动生成均匀间隔的刻度,默认规则通常取每月1号作为刻度位置。这就导致代表10月数据的2021-10-31位置,非常靠近自动生成的2021-11-01刻度,最终标签被误标为11月,和实际数据代表的月份错位。
  • 你找到的临时修复方案逻辑是:强制指定刻度起始点为第一个数据点的时间,同时强制刻度间隔为1个月,让每个刻度正好对齐实际的分组数据时间点,自然解决了标签错位的问题。
更稳定的替代修复方案

你也可以选择以下两种方案,避免依赖时间轴刻度参数调整:

  1. 把x轴字段转换为字符串类型,让Plotly直接按给定的字符串顺序显示标签,不会触发时间刻度自动计算逻辑:
# 新增月份字符串字段
orders_month_grouped['month_str'] = orders_month_grouped['createdAt'].dt.strftime('%Y-%m')
# 画图时x参数替换为月份字符串
fig2 = px.bar(orders_month_grouped, x='month_str', y="order_total_usd", text='value_labels')
  1. 显式指定x轴的刻度值和显示文本,完全自定义标签展示:
fig2.update_xaxes(
    tickvals = orders_month_grouped['createdAt'],
    ticktext = orders_month_grouped['createdAt'].dt.strftime('%Y-%m')
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 11:45:04