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

Plotly叠加条形图(barmode='overlay')颜色混合,如何保留原始色彩?

解决Plotly条形图barmode='overlay'模式下颜色混合问题

当使用barmode='overlay'时,条形完全重叠导致颜色叠加混合,可通过以下两种核心方法保留原始色彩:

方法1:设置条形透明度(Opacity)

给每个条形轨迹设置合适的opacity参数,让两种颜色叠加后仍能保留各自的色调,同时图例显示原始颜色。示例代码:

import plotly.graph_objects as go

x = ['A', 'B', 'C']
y_blue = [3, 5, 2]
y_yellow = [4, 2, 6]

fig = go.Figure()
# 蓝色轨迹,透明度0.7
fig.add_trace(go.Bar(
    x=x, y=y_blue, 
    name='蓝色轨迹', 
    marker_color='blue', 
    opacity=0.7
))
# 黄色轨迹,透明度0.7
fig.add_trace(go.Bar(
    x=x, y=y_yellow, 
    name='黄色轨迹', 
    marker_color='yellow', 
    opacity=0.7
))

fig.update_layout(barmode='overlay')
fig.show()

方法2:给条形设置偏移(Offset)

通过marker.offset参数让同一X轴位置的两个条形错开,完全避免重叠,彻底保留原始颜色。示例代码:

import plotly.graph_objects as go

x = ['A', 'B', 'C']
y_blue = [3, 5, 2]
y_yellow = [4, 2, 6]

fig = go.Figure()
fig.add_trace(go.Bar(
    x=x, y=y_blue, 
    name='蓝色轨迹', 
    marker_color='blue'
))
# 给黄色条形设置偏移,避免与蓝色重叠
fig.add_trace(go.Bar(
    x=x, y=y_yellow, 
    name='黄色轨迹', 
    marker_color='yellow',
    marker=dict(offset=0.2)
))

fig.update_layout(barmode='overlay')
fig.show()

补充说明

如果不需要强制使用overlay模式,barmode='group'是更简单的分组显示方案,天然不会出现颜色混合问题,但如果必须保留叠加布局,上述两种方法更适用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 19:06:18