Гистограммы с несколькими осями Y в виде графика в обычном режиме barmode = 'group' - PullRequest
1 голос
/ 31 марта 2020

Используя plotly в python, я хочу построить гистограммы с несколькими осями Y, так как значения одной значительно больше, чем другой. Graph showcasing the problem, cant see blue variation due to red's size

Я пытался решить эту проблему, используя 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')

Графики строятся друг за другом, я возился с параметрами make_suplots безрезультатно.

Problem with Make_subplots

Как я могу получить желаемый результат?

Редактировать:

Я попробовал ответ Ярослава, и это вроде работает. Похоже на неоптимальную реализацию и нарезку значений ключей на второй оси Y.

Определенно полезно знать, и в большинстве случаев должно работать, хотя и так, спасибо! enter image description here

1 Ответ

0 голосов
/ 31 марта 2020

Ключ в правильной настройке некоторых параметров объекта 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...