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

Plotly中如何为柱状图误差棒添加独立图例并实现单独显隐

独立控制柱状图误差棒显示/隐藏的实现方法

要实现误差棒和柱状图独立显示/隐藏,核心思路是把误差棒从柱状图里拆出来,用无标记的散点图单独绘制误差棒,这样就能在图例里单独控制每个系列的显示状态。

解决对齐问题的关键

水平柱状图的y轴是分类变量(比如['a','b','c']),Plotly会自动给每个分类分配对应的数值索引(a→0、b→1、c→2)。只要散点图的y值和柱状图用完全相同的分类值,x值和柱状图的x值一一对应,误差棒就会精准对齐柱状图中心。

完整代码示例

import plotly.graph_objects as go

# 定义基础数据
categories = ['a', 'b', 'c']
# 第一个柱状图数据
bar1_x = [1, 2, 3]
bar1_error = [0.5, 0.5, 0.5]
# 第二个柱状图数据
bar2_x = [0.5, 1.5, 2.5]
bar2_error = [0.25, 0.25, 0.25]

fig = go.Figure()

# 添加第一个柱状图(不带误差棒)
fig.add_trace(go.Bar(
    y=categories,
    x=bar1_x,
    orientation='h',
    name='柱状图1'
))

# 添加第一个柱状图的独立误差棒(散点图隐藏标记,只显示误差棒)
fig.add_trace(go.Scatter(
    y=categories,
    x=bar1_x,
    mode='markers',
    marker=dict(size=0),  # 隐藏散点标记,只保留误差棒
    error_x=dict(array=bar1_error),
    name='柱状图1误差棒'
))

# 添加第二个柱状图(不带误差棒)
fig.add_trace(go.Bar(
    y=categories,
    x=bar2_x,
    orientation='h',
    name='柱状图2'
))

# 添加第二个柱状图的独立误差棒
fig.add_trace(go.Scatter(
    y=categories,
    x=bar2_x,
    mode='markers',
    marker=dict(size=0),
    error_x=dict(array=bar2_error),
    name='柱状图2误差棒'
))

fig.show()

使用说明

运行代码后,图例里会显示四个选项:两个柱状图、两个误差棒。你可以单独勾选/取消勾选任意一项,实现误差棒和柱状图的独立显示控制。

如果是垂直柱状图(orientation='v'),只需要把散点图的error_x改成error_y,x用分类值、y用柱状图的数值即可,逻辑完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 13:07:21