使用Python 3.8,Plotly 4.13。
在我的散点图中,我使用add_vline()绘图中的方法添加了多条垂直线。但是,我无法将其添加到图例中,从而允许我打开/关闭垂直线。
如何在图例中添加垂直线?
这是我如何创建情节的示例:
fig = go.Figure()
fig.add_trace(
go.Scatter(name="name added to legend", datas...)
)
for dt in dates:
fig.add_vline(x=dt, line_width=1, etc...)
Run Code Online (Sandbox Code Playgroud)
输出类似这样的内容:
使用 创建的所有绘图go.Scatter都会添加到图例中,但不会添加到创建的垂直线fig.add_vline。
垂直线只是图形的装饰,而不是图形对象,因此它不包含在图例中。因此,如果您想在图例中使用 ON/OFF 功能,您可以在 go.Scatter 中添加一个新功能,并将其用于图例中选择的功能。我修改了官方参考中的示例来创建代码。
import plotly.express as px
import plotly.graph_objects as go
df = px.data.stocks()
dmax = df[['GOOG', 'AAPL', 'AMZN', 'FB', 'NFLX', 'MSFT']].values.max()
dmin = df[['GOOG', 'AAPL', 'AMZN', 'FB', 'NFLX', 'MSFT']].values.min()
fig = go.Figure()
fig.add_trace(go.Scatter(x=df.date, y=df['AAPL'], mode='lines', name='AAPL'))
fig.add_trace(go.Scatter(x=df.date, y=df['GOOG'], mode='lines', name='GOOG'))
fig.add_trace(go.Scatter(x=[df.date[10],df.date[10]],
y=[dmin,dmax],
mode='lines',
line=dict(color='green', width=2, dash='dash'),
name='2018-03-12'))
fig.show()
Run Code Online (Sandbox Code Playgroud)