我有一个多列的数据框,每列包含一个时间序列。我想一次比较两个时间序列图,为此我将它们绘制成两个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)
因此,plotly应该允许用户一次仅选择两条迹线以在图上可见,并将下一条选定的迹线动态放置在可用的y轴侧。
例如,如果“ yaxis数据”和“ yaxis2数据”可见,则用户必须在从图例中选择“ yaxis3数据”之前取消选择其中一个。因此,如果用户取消选择位于图左侧的“ yaxis数据”,则“ yaxis3数据”的y轴标签应位于左侧。如果用户未选择“ yaxis2数据”,则新数据将显示在右侧。
我希望通过交互式会话分配yaxis= 'y' or 'y2'
。我不知道该怎么实现。