如何修改Plotly柱状图X轴:从周级显示改为日级显示?
解决Plotly Express Histogram日期轴自动周聚合的问题
问题根源
Plotly Express的histogram函数本质是数据分箱聚合工具,针对日期类型的X轴,默认会按周粒度自动分箱,所以你看到的是52个周聚合柱形,而非365个日级数据柱形。
两种解决方案
方案1:改用px.bar(推荐)
bar图不会对数据做自动聚合,直接映射每一行的日期与对应COUNT值,完美匹配你的需求:
# 确保DATE列为datetime类型(如果还没转换的话) import pandas as pd df["DATE"] = pd.to_datetime(df["DATE"]) # 绘制日级柱状图 fig = px.bar(df, x="DATE", y="COUNT", title="年度每日数据柱状图") fig.update_layout(bargap=0.30) fig.show()
方案2:强制histogram按日分箱
如果一定要使用histogram,需要手动指定分箱粒度为1天,同时设置histfunc="sum"来保留原COUNT列的求和逻辑(默认histfunc是计数,会和你的业务数据冲突):
df["DATE"] = pd.to_datetime(df["DATE"]) fig = px.histogram( df, x="DATE", y="COUNT", title="年度每日数据柱状图", histfunc="sum", # 对每个分箱内的COUNT值求和 x_bin_size="D1" # 设置分箱大小为1天 ) fig.update_layout(bargap=0.30) fig.show()
内容的提问来源于stack exchange,提问作者dmccaul
相关产品推荐
相关产品推荐

