以正常的 barmode='group' 方式绘制具有多个 y 轴的条形图

Jor*_*ram 2 python plotly

在 python 中使用plotly,我想绘制具有多个 y 轴的条形图,因为一个轴的值​​明显大于另一个轴的值​​。 显示问题的图表,由于红色的大小而看不到蓝色的变化

我尝试使用 来解决这个问题plotly.subplots.make_subplots,但我无法让它们像正常的绘图功能那样彼此相邻地绘图barmode='group'

import plotly.graph_objects as go
from plotly.subplots import make_subplots

fig = make_subplots(specs=[[{'secondary_y': True}]])

fig.add_bar(name='group 1',x=x1, y=y1, secondary_y=False)

fig.add_bar(name='group 2', x=x2, y=y2, secondary_y=True)

fig.update_layout(
    xaxis_title='x-axis',
    yaxis_title='y-axis')
Run Code Online (Sandbox Code Playgroud)

条形图彼此后面,我修改了 make_suplots 的参数但无济于事。

Make_subplots 的问题

我怎样才能得到想要的结果?

编辑:

我尝试了雅罗斯拉夫的答案,它确实有效。感觉像是一个次优的实现,并且在第二个 y 轴上对值进行了关键切割。

绝对值得了解并且在大多数情况下应该有效,所以谢谢! 在此输入图像描述

Jar*_*děk 5

关键在于go.Figure()正确设置对象中的一些参数。我希望这个例子是不言自明的:

import plotly.graph_objects as go
animals=['giraffes', 'orangutans', 'monkeys']

fig = go.Figure(
    data=[
        go.Bar(name='SF Zoo', x=animals, y=[200, 140, 210], yaxis='y', offsetgroup=1),
        go.Bar(name='LA Zoo', x=animals, y=[12, 18, 29], yaxis='y2', offsetgroup=2)
    ],
    layout={
        'yaxis': {'title': 'SF Zoo axis'},
        'yaxis2': {'title': 'LA Zoo axis', 'overlaying': 'y', 'side': 'right'}
    }
)

# Change the bar mode
fig.update_layout(barmode='group')
fig.show()
Run Code Online (Sandbox Code Playgroud)

结果如下:

在此输入图像描述