如何在 Jupyter Notebook 上加载 plotly updatemenus 时只显示一条轨迹?
How to show only one trace when plotly updatemenus load on Jupyter Notebook?
我想使用 plotly
的 updatemenus
功能显示两个图表。我能够使用 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)
我只想在绘图加载时显示 trace28
和 trace29
。现在,加载绘图时会显示所有痕迹。
在做trace的时候,可以设置visible = "legendonly"
。然后您可以通过单击图例中的线来切换轨迹。那是你想要的吗?
所以你会改变 trace30
和 trace31
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"
)
这是否为您提供了您想要的功能?
我想使用 plotly
的 updatemenus
功能显示两个图表。我能够使用 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)
我只想在绘图加载时显示 trace28
和 trace29
。现在,加载绘图时会显示所有痕迹。
在做trace的时候,可以设置visible = "legendonly"
。然后您可以通过单击图例中的线来切换轨迹。那是你想要的吗?
所以你会改变 trace30
和 trace31
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"
)
这是否为您提供了您想要的功能?