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
相关产品推荐
相关产品推荐

