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

如何控制Plotly堆叠条形图中组间与组内条形的间距?

控制Plotly堆叠条形图的两种间距

你可以通过Plotly布局中的两个参数分别控制这两种间距:

  • 组间间距(黄箭头标注:不同时间类别之间):用bargap参数调整,取值范围0-1,数值越大间隙越宽
  • 组内子项间距(黑箭头标注:同一时间下Cat与Dog之间):用bargroupgap参数调整,取值范围0-1,数值越大间隙越宽

修改后的完整代码

import plotly.graph_objects as go
x = [
    ["10 minutes", "10 minutes", "30 minutes", "30 minutes", "60 minutes", "60 minutes"],
    ["Cat", "Dog", "Cat", "Dog", "Cat", "Dog"]
]
fig = go.Figure()
fig.add_bar(x=x,y=[1,2,3,4,5,6], name="increase")
fig.add_bar(x=x,y=[9,8,7,6,5,4], name="decrease")
fig.add_bar(x=x,y=[5,5,5,5,5,5], name="unchanged")

fig.update_layout(barmode="stack", showlegend=True, template='plotly',
                  bargap=0.3,  # 控制"10 minutes"与"30 minutes"等时间组之间的间距
                  bargroupgap=0.4,  # 控制同一时间组内Cat与Dog之间的间距
                  # height=500,
                  # width=1000,
                 )
fig.update_yaxes(ticks='outside',
                 dtick=2,
                 ticklen=10,
                 linewidth=1,
                 linecolor="black",
                 tickfont=dict(size=20)
                )
fig.update_xaxes(ticks="", tickfont=dict(size=12),                 
                )
fig.show()

参数说明

  • bargap:控制不同顶级类别(如"10 minutes"和"30 minutes")整体之间的空白比例,默认值为0.1,调大后会让时间组之间的间隙更明显
  • bargroupgap:控制同一顶级类别下不同子类别(如"10 minutes"下的Cat和Dog)之间的空白比例,默认值为0,调大后会拉开同一时间组内两个堆叠条形的间距

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 11:30:18