#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, которые действуют как несколько выпадающих меню. Итак, большое спасибо, спас мой день.