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

Plotly Python中如何取消条形图默认堆叠实现分开展示

问题原因

仅指定x、y字段映射时,plotly.express默认会对相同x值对应的y值做聚合求和,以单根堆叠条形展示。barmode参数仅对多数据序列的条形图生效,单序列场景下修改该参数无法实现条形拆分效果。

解决方案

要实现同x分类下多根条形独立并排的效果,按以下步骤操作即可:

  • 为同一x分类下的每一条记录生成组内唯一ID,用来拆分出独立的条形序列
  • 绘图时将该ID传入color参数,同时设置barmode='group'开启分组并排模式,不需要区分颜色的话可以手动统一所有条形配色,和Excel默认效果对齐。
完整可运行代码
import pandas as pd
import numpy as np
import plotly.express as px

# 构造示例数据
abc = np.random.randint(1,30, 15)
df = pd.DataFrame(abc, columns=['v1'])
df['v2'] = list('abc'*5)

# 生成同x分类下的条形唯一标识
df['bar_seq'] = df.groupby('v2').cumcount()

fig = px.bar(
    df,
    x='v2',
    y='v1',
    color='bar_seq',
    barmode='group',
    # 取消下一行注释即可统一所有条形为Excel默认蓝色
    # color_discrete_sequence=['#4472C4'] * df['bar_seq'].nunique()
)

# 统一配色时可取消下一行注释隐藏冗余图例
# fig.update_layout(showlegend=False)

# 按需调整条形间距:bargap为不同x组的间距,bargroupgap为同组内条形间距
# fig.update_layout(bargap=0.3, bargroupgap=0.1)

fig.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 04:03:29