首页 > 解决方案 > 如何控制条形图中条形之间的距离

问题描述

我有两个产生相同结果的代码和平,所以任何一个都可以用来回答。

第一的:

import plotly.graph_objects as go

fig = go.Figure()
fig.add_trace(go.Bar(
    name='Group 1',
    x=['Var 1', 'Var 2', 'Var 3'], y=[3, 6, 4],
    error_y=dict(type='data', array=[1, 0.5, 1.5]),
    width=0.15
))
fig.add_trace(go.Bar(
    name='Group 2',
    x=['Var 1', 'Var 2', 'Var 3'], y=[4, 7, 3],
    error_y=dict(type='data', array=[0.5, 1, 2]),
    width=0.15
))
fig.update_layout(barmode='group')
fig.show()

第二:

import plotly.graph_objects as go

fig = go.Figure(data=[
    go.Bar(
            name='Group 1',
            x=['Var 1', 'Var 2', 'Var 3'], y=[3, 6, 4],
            error_y=dict(type='data', array=[1, 0.5, 1.5]),
            width=0.15),
    go.Bar(
            name='Group 2',
            x=['Var 1', 'Var 2', 'Var 3'], y=[4, 7, 3],
            error_y=dict(type='data', array=[0.5, 1, 2]),
            width=0.15)
])
# Change the bar mode
fig.update_layout(barmode='group')
fig.show()

它们看起来像: 在此处输入图像描述



问题:如何控制不同组的条形和不同Vars的条形之间的距离?

标签: pythonpython-3.xplotly

解决方案


您要求有 2 个属性。它们如下:

  1. bargap - 相邻位置坐标的条之间的间隙。
  2. bargroupgap - 相同位置坐标的条之间的间隙。

但是这里有一个问题,如果你设置width了那么这两个属性都会被忽略。因此,从代码中删除宽度值并设置上述属性应该可以工作。

import plotly.graph_objects as go

fig = go.Figure()
fig.add_trace(go.Bar(
    name='Group 1',
    x=['Var 1', 'Var 2', 'Var 3'], y=[3, 6, 4],
    error_y=dict(type='data', array=[1, 0.5, 1.5])
))
fig.add_trace(go.Bar(
    name='Group 2',
    x=['Var 1', 'Var 2', 'Var 3'], y=[4, 7, 3],
    error_y=dict(type='data', array=[0.5, 1, 2])
))
fig.update_layout(barmode='group', bargap=0.30,bargroupgap=0.0)
fig.show()

推荐阅读