У меня есть фрейм данных из нескольких столбцов, каждый из которых содержит временной ряд. Я хочу сравнить два графика временных рядов за один раз, для которых я строю их наложение с двумя осями Y, как показано в примере здесь: https://plot.ly/python/multiple-axes/#two-y-axes
Мои проблемы:
Я хочу графически разрешить пользователю выбирать только две трассы одновременно,
динамически изменяет и регулирует ось Y в зависимости от того, какая трасса выбрана / не выбрана
Опираясь на пример, приведенный в ссылке выше:
import plotly
import plotly.plotly as py
import plotly.graph_objs as go
trace1 = go.Scatter(x=[1, 2, 3],y=[40, 50, 60],name='yaxis data')
trace2 = go.Scatter(x=[2, 3, 4],y=[4, 5, 6],name='yaxis2 data',yaxis='y2')
trace3 = go.Scatter( x=[3, 4, 5],y=[400, 500, 600],name='yaxis3 data', yaxis='y2', visible = 'legendonly')
data = [trace1, trace2, trace3]
layout = go.Layout(
title='Double Y Axis Example',
yaxis=dict(
title='yaxis title'
),
yaxis2=dict(
title='yaxis2 title',
titlefont=dict(
color='rgb(148, 103, 189)'
),
tickfont=dict(
color='rgb(148, 103, 189)'
),
overlaying='y',
side='right'
)
)
fig = go.Figure(data=data, layout=layout)
plotly.offline.plot(fig)
Таким образом, график должен позволить пользователю выбирать только две трассы за раз, которые будут видны на графике, и динамически размещать следующую выбранную трассу на доступной стороне оси Y.
Например, если видны «данные yaxis» и «данные yaxis2», пользователь должен отменить выбор любого из них, прежде чем выбрать «данные yaxis3» из легенд. Таким образом, если пользователь отменяет выборку «данных yaxis», которая находится с левой стороны графика, метки оси y данных yaxis3 должны идти с левой стороны. Если пользователь не выбрал «данные yaxis2», новые данные были бы справа.
Я хочу, чтобы yaxis= 'y' or 'y2'
был назначен через интерактивный сеанс. Я не знаю, как этого добиться.