Python-绘图-多轴图上的动态y轴选择

时间:2019-04-16 10:21:10

标签: python plotly multiple-axes

我有一个多列的数据框,每列包含一个时间序列。我想一次比较两个时间序列图,为此我将它们绘制成两个y轴重叠,如此处的示例所示:https://plot.ly/python/multiple-axes/#two-y-axes

我的问题是:

  1. 我想让用户一次只选择两条轨迹,

  2. 根据选择/未选择的轨迹动态更改和调整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'。我不知道该怎么实现。

0 个答案:

没有答案