Несколько гистограмм на одной оси X и оси Y в Plotly

Я пытаюсь построить несколько гистограмм на одной оси x и оси y. Мне не нужны столбчатые диаграммы с накоплением или сгруппировкой. Я просто хочу иметь несколько столбчатых диаграмм бок о бок с длинной осью x, где отметки по оси x повторяются в зависимости от количества столбчатых диаграмм и оси Y, которая является общей для столбчатых диаграмм и помещается в крайнюю левую часть графика. .

Вот мой код, но он не дает того, что я хочу

import plotly.offline as pyo
import plotly.graph_objs as go
from plotly import tools



trace1 = go.Bar(
    x=[1, 2, 3],
    y=[10, 11, 12]
)
trace2 = go.Bar(
    x=[1, 2, 3],
    y=[100, 110, 120],
)
trace3 = go.Bar(
    x=[1, 2, 3],
    y=[1000, 1100, 1200],
)


fig = tools.make_subplots(rows=3, cols=1, specs=[[{}], [{}], [{}]],
                          shared_xaxes=True, shared_yaxes=True,
                          vertical_spacing=0.001)


fig.append_trace(trace1, 3, 1)
fig.append_trace(trace2, 2, 1)
fig.append_trace(trace3, 1, 1)

fig['layout'].update(height=600, width=600, title='')

pyo.plot(fig, filename='bar-charts-with-shared-axis.html')

Любая помощь будет оценена


person Okroshiashvili    schedule 27.03.2019    source источник


Ответы (1)


Если я правильно понимаю, вам нужно следующее:  Ваш результат

Код:

import plotly.offline as pyo
import plotly.graph_objs as go
from plotly import tools

trace1 = go.Bar(
    x=[1, 2, 3],
    y=[10, 11, 12]
)
trace2 = go.Bar(
    x=[1, 2, 3],
    y=[100, 110, 120],
)
trace3 = go.Bar(
    x=[1, 2, 3],
    y=[1000, 1100, 1200],
)

fig = tools.make_subplots(rows=1, cols=3,
                          shared_xaxes=True, shared_yaxes=True,
                          vertical_spacing=0.001)

fig.append_trace(trace1, 1, 1)
fig.append_trace(trace2, 1, 2)
fig.append_trace(trace3, 1, 3)

fig['layout'].update(height=600, width=600, title='')

pyo.plot(fig, filename='bar-charts-with-shared-axis.html')
person Dmitriy Kisil    schedule 27.03.2019
comment
Прекрасно работает. Большое спасибо. Еще один вопрос. Мне нужно разместить раскрывающееся меню на этой диаграмме. Я знаю, как это сделать, но особенно хочу иметь раскрывающиеся меню с несколькими вариантами выбора, в которых я смогу выбрать 2 страны и одновременно отменить выбор других 2 стран. Является ли это возможным? Если это так, я поделюсь своим кодом - person Okroshiashvili; 27.03.2019
comment
@NodarOkroshiashvili, вы можете задать другой вопрос) Это возможно в Dash: перейдите по этой ссылке и посмотрите на второй пример. Но вам нужен график в plotly, и я не могу найти никаких параметров в ref или позже гугл. Так что я не знал, как это сделать в plotly - person Dmitriy Kisil; 27.03.2019
comment
Я тоже гуглил и ничего не нашел. Как вы говорите, я не хочу использовать Dash, поскольку я не могу использовать его без локального сервера. Мне нужен отдельный HTML-файл. Я решил эту проблему, используя легенды Plotly, которые действуют как несколько раскрывающихся меню. Итак, большое спасибо, я спас мне день. - person Okroshiashvili; 27.03.2019