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

Plotly Express不同组大小分组柱状图堆叠问题的原因及解决方法

1 推测正确性判断

你的推测不正确。
出现堆叠效果的核心原因是start_time为连续型字段,你将其作为color参数的映射值时,Plotly会将所有数据判定为同一个系列的连续着色,不会生成多个离散的绘图轨迹(trace)。而barmode='group'仅在存在多个离散轨迹时才会生效,和不同teacher对应的样本数量是否均匀没有关联。

2 调整实现并列柱状图的方法

可以通过将color映射的字段转为离散类型,触发生成多个独立轨迹,即可让barmode='group'参数生效,操作逻辑如下:
首先对数据做预处理,新增离散化的着色字段:

# 方法1:将start_time转为字符串类型作为离散着色字段,保留原时间着色逻辑
data['start_time_discrete'] = data['start_time'].astype(str)

# 方法2:如果不需要按时间着色,仅需要区分同一个teacher下的多条记录,可新增序列标识
# data['record_seq'] = data.groupby('teacher').cumcount().astype(str)

再修改绘图代码的color映射字段即可:

import plotly.express as px
px.bar(data.sort_values("start_time", ascending=False), 
       x="teacher", 
       y="start_time", 
       color="start_time_discrete", # 替换为刚才生成的离散字段
       color_continuous_scale="Bluered", 
       barmode="group")

修改后同一个teacher下的多个记录就会以并列样式展示,而非堆叠。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 23:27:03