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

Plotly柱状图无法升序排列及'Figure'无sort_values属性错误求助

解决Plotly柱状图升序排序及AttributeError问题

错误原因

你碰到的AttributeError: 'Figure' object has no attribute 'sort_values',是因为sort_values()是pandas DataFrame专属方法,不能直接用在Plotly生成的Figure对象上。要实现柱状图升序排列,得先对数据源df_table做排序,再用排序后的数据集绘图。

解决方案

1. 先对DataFrame做升序排序

在调用px.bar()绘图之前,用df_table.sort_values()对"June 2023"列做升序排序,这样生成的柱状图就会按数值从小到大排列。

2. (可选)固定类别与颜色的对应关系

你给每个柱子设置了自定义颜色列表,如果直接排序,颜色会跟着柱子位置变动,可能导致原类别对应错误颜色。建议先做一个类别-颜色映射字典,确保每个"Issue Sub-Type"始终对应固定颜色。

修改后的完整代码

# 1. 创建类别-颜色映射字典(需要根据你的实际Issue Sub-Type列表对应颜色,示例如下)
# 先打印查看所有类别:print(df_table["Issue Sub-Type"].unique())
color_map = {
    "你的子类型1": "#12e195",
    "你的子类型2": "#01cdfe",
    "你的子类型3": "#05ffa1",
    "你的子类型4": "#b967ff",
    "你的子类型5": "#fffb96",
    "你的子类型6": "#001eff",
    "你的子类型7": "#e377c2",
    "你的子类型8": "#d05037",
    "你的子类型9": "#bcbd22",
    "你的子类型10": "#17becf",
    "你的子类型11": "#00FFFF",
    "你的子类型12": "#BFFF00"
}

# 2. 对DataFrame按June 2023列升序排序
sorted_df = df_table.sort_values(by="June 2023", ascending=True)

# 3. 绘制柱状图,使用颜色映射确保类别颜色对应正确
figBARChartJune = px.bar(
    sorted_df, 
    x="Issue Sub-Type", 
    y="June 2023", 
    text_auto=True,
    color="Issue Sub-Type",
    color_discrete_map=color_map
)

# 原布局和样式设置保持不变
figBARChartJune.update_layout(
    xaxis_title="Issue Sub-Types",
    yaxis_title="Number of Issues",
    legend_title="Issue Sub-Types",
    font=dict(
        family="Times New Roman, monospace",
        size=12,
        color="RebeccaPurple"
    ),
    title={
        'text': "Total Number of Issues for June 2023",
    }
)

关键说明

  • 如果不需要固定类别颜色,也可以简化操作:直接排序后绘图,保留原来的update_traces(marker_color=...),但注意排序后颜色顺序会随柱子位置变化,可能和原类别不匹配,更推荐用颜色映射字典的方式。
  • 排序参数ascending=True为升序,若需要降序改为False即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 09:52:27