如何在 Jupyter Notebook 上加载 plotly updatemenus 时只显示一条轨迹?

How to show only one trace when plotly updatemenus load on Jupyter Notebook?

我想使用 plotlyupdatemenus 功能显示两个图表。我能够使用 updatemenus 功能填充和显示数据。但是,当加载图时,最初会显示这两个图。有没有办法在绘图最初加载时只显示一个图表?

我在 plotly 上浏览了 updatemenus 的文档,但找不到任何可以帮助我实现这一目标的属性。

trace28 = go.Bar(x=for1.head()['Name'],
                 y=for1.head()['G'],
                 name='Goals',
                 opacity=0.8
                )

trace29 = go.Bar(x=for1.head()['Name'],
                 y=for1.head()['A'],
                 name='Assists',
                 opacity=0.8
                )

trace30 = go.Bar(x=for2.head()['Name'],
                 y=for2.head()['G'],
                 name='Goals',
                 opacity=0.8
                )

trace31 = go.Bar(x=for2.head()['Name'],
                 y=for2.head()['A'],
                 name='Assists',
                 opacity=0.8
                )


updatemenus = list([dict(active=-1,
                         type='buttons',
                         buttons=list([dict(label='2011/12',
                                           method='update',
                                           args=[dict(visible=[True, True, False, False]),
                                                 dict(title='<b>Forward Stats 2011/12</b>')
                                                ]
                                          ),

                                       dict(label='2012/13',
                                           method='update',
                                           args=[{'visible':[False, False, True, True]},
                                                 {'title':'<b>Forward Stats 2012/13</b>'}
                                                ]
                                          ),
                                     ])
                       ),
                  ])

layout = go.Layout(title='<b>Forward Stats</b>',
                   xaxis=dict(title='<b><i>Player Name</b></i>'),
                   yaxis=dict(title='<b><i>Goals/Assists</b></i>'),
                   updatemenus=updatemenus,
                   showlegend=False,
                   barmode='group'
                  )

data = [trace28, trace29, trace30, trace31]
fig = go.Figure(data=data, layout=layout)
py.iplot(fig)

我只想在绘图加载时显示 trace28trace29。现在,加载绘图时会显示所有痕迹。

在做trace的时候,可以设置visible = "legendonly"。然后您可以通过单击图例中的线来切换轨迹。那是你想要的吗?

所以你会改变 trace30trace31

trace30 = go.Bar(x=for2.head()['Name'],
                 y=for2.head()['G'],
                 name='Goals',
                 opacity=0.8,
                 visible = "legendonly"
                )

trace31 = go.Bar(x=for2.head()['Name'],
                 y=for2.head()['A'],
                 name='Assists',
                 opacity=0.8,
                 visible = "legendonly"
                )

这是否为您提供了您想要的功能?