gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 21:43:47 24 4
gpt4 key购买 nike

在 python 中使用 plotly,我想绘制具有多个 y 轴的条形图,因为一个的值明显大于另一个。 Graph showcasing the problem, cant see blue variation due to red's size

我尝试使用 plotly.subplots.make_subplots 来解决这个问题, 但我无法让它们像正常 plotly 一样彼此相邻绘制 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')

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

Problem with Make_subplots

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

编辑:

我尝试了 Jaroslav 的回答,效果不错。感觉像是次优的实现和第二个 y 轴上的值的关键切割。

虽然非常感谢,但在大多数情况下应该能正常工作,非常感谢! enter image description here

最佳答案

关键在于正确设置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()

结果如下:

enter image description here

关于python - 以正常的 barmode ='group' 方式绘制具有多个 y 轴的条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60950480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com