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

#python #plotly #plotly-dash #plotly-python

#python #plotly #plotly-пунктирная #plotly-python

Вопрос:

Я пытаюсь построить несколько столбчатых диаграмм на одной и той же оси 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')

  

Любая помощь была бы оценена

Ответ №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')
  

Комментарии:

1. Работает отлично. Большое спасибо. Еще один вопрос. Мне нужно поместить выпадающее меню на эту диаграмму. Я знаю, как это сделать, но я особенно хочу иметь несколько выпадающих меню выбора, в которых я смогу выбрать 2 страны, одновременно отменяя выбор двух других стран. Возможно ли это? Если это так, я поделюсь своим кодом

2. @NodarOkroshiashvili, вы можете задать другой вопрос) Это возможно в Dash : перейдите по этой ссылке и посмотрите на второй пример. Но вам нужен график в plotly , и я не могу найти никаких параметров в ссылке или после поиска в Google. Итак, я не знал, как это сделать в plotly

3. Я также погуглил и ничего не нашел. Как вы говорите, я не хочу использовать Dash , поскольку я не могу использовать его без локального сервера. Мне нужен отдельный HTML-файл. Я решил эту проблему, используя легенды Plotly, которые действуют как несколько выпадающих меню. Итак, большое спасибо, спас мой день.