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

使用Plotly的px.bar绘图时如何强制X轴日期保持数据框原有顺序

问题原因

Plotly 默认会将格式符合日期特征的 X 轴字段自动识别为时间类型,按时间逻辑排序,会忽略原始数据中跳过非交易日、自定义排序的规则,导致最终X轴顺序和数据框的原始顺序不一致。

解决方案

你可以任选以下任意一种方法解决问题:

方案1:修改数据框列属性(全局生效)

先将DATE列转为有序分类类型,顺序严格匹配原始数据的出现顺序,之后再执行原有绘图逻辑即可,后续所有基于该数据框的绘图都会自动沿用该排序规则:

import pandas as pd

# 把DATE列设为有序分类,顺序完全匹配原始数据的出现顺序
dfff['DATE'] = pd.Categorical(dfff['DATE'], categories=dfff['DATE'].unique(), ordered=True)

# 执行你原来的绘图代码
fig1 = px.bar(dfff, x="DATE", y="Profit/Loss", color = "Marker", color_discrete_map = "identity").update_layout(showlegend=False, title_x=0.5)

方案2:仅修改绘图配置(不改动原始数据)

不需要修改原始数据,只需要在更新布局时强制指定X轴的排序规则,仅对当前绘图生效:

fig1 = px.bar(dfff, x="DATE", y="Profit/Loss", color = "Marker", color_discrete_map = "identity")

# 新增X轴排序配置
fig1.update_layout(
    showlegend=False, 
    title_x=0.5,
    xaxis={
        "type": "category",
        "categoryorder": "array",
        "categoryarray": dfff["DATE"].unique()
    }
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:18:01