如何控制条形图中的条形之间的距离

时间:2020-07-15 23:15:28

标签: python python-3.x plotly

我有两个能产生相同结果的代码,所以任何一个都可以用作答案。

第一:

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()

它们都看起来像: enter image description here



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

1 个答案:

答案 0 :(得分:2)

您需要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()