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

Plotly堆叠柱状图如何避免误差线被遮挡?

解决Plotly堆叠柱状图误差线被遮挡的问题

你的问题是堆叠柱状图中第一个柱子的误差线被第二个柱子遮挡,要让误差线显示在两个柱子之间,有两种简洁的解决方法:

方法一:给误差线设置上层显示

直接在第一个柱子的error_y参数中添加layer="above",强制误差线显示在所有图层上方:

import plotly.graph_objects as go
x_values = ['A','B','C','D','E']
y1_values = [0.527, 0.519, 0.497, 0.458, 0.445]
y2_values = [0.473, 0.481, 0.503, 0.542, 0.555]
y_errors = [0.05, 0.065, 0.158, 0.07, 0.056]


fig = go.Figure(data=[
    go.Bar(name='NAME1', x=x_values, y=y1_values, 
           error_y=dict(type="data", array=y_errors, layer="above")),
    go.Bar(name='NAME2', x=x_values, y=y2_values)
])
fig.update_layout(barmode='stack')
fig.show()

方法二:单独绘制误差线

如果第一种方法不生效,可以单独用go.Scatter绘制误差线,并将其放在柱子之后绘制,确保显示在最上层:

import plotly.graph_objects as go
x_values = ['A','B','C','D','E']
y1_values = [0.527, 0.519, 0.497, 0.458, 0.445]
y2_values = [0.473, 0.481, 0.503, 0.542, 0.555]
y_errors = [0.05, 0.065, 0.158, 0.07, 0.056]


fig = go.Figure(data=[
    go.Bar(name='NAME1', x=x_values, y=y1_values),
    go.Bar(name='NAME2', x=x_values, y=y2_values),
    go.Scatter(
        x=x_values,
        y=y1_values,
        mode='lines',
        error_y=dict(type="data", array=y_errors),
        showlegend=False,
        line=dict(color='black')
    )
])
fig.update_layout(barmode='stack')
fig.show()

两种方法都能让误差线清晰显示在两个柱子之间,推荐第一种,代码更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 13:35:05