使用 plotly python 绘制多个箭头
Draw multiple arrows using plotly python
有一个关于multiple annotations的例子,它简单地复制了go.layout.Annotation()来绘制2个箭头。
但是我需要画100多个箭头,我不知道怎么画。
go.layout.Annotation() 是元组类型,每个箭头都接受 dict() ,有没有简单的方法可以将更多的 dict() 添加到 tuple() ?
谢谢。
我解决了我自己的问题。
fig.layout.annotations接受列表,每个箭头的参数是一个dict()。所以思路是创建一个很多dict()的列表,然后用fig.update_layout(annotations = list)画多个箭头。
每个箭头的 dict() 如下所示:
arrow = go.layout.Annotation(dict(
x= x_end,
y= y_end,
xref="x", yref="y",
text="",
showarrow=True,
axref = "x", ayref='y',
ax= x_start,
ay= y_start,
arrowhead = 3,
arrowwidth=1.5,
arrowcolor='rgb(255,51,0)',)
)
可以像这样轻松创建多个箭头的列表:
list = list + [dict()]
然后,更新图:
fig.update_layout(
annotations= list_of_all_arrows,)
如果所有箭头都在时间序列中,这是最终结果:
有一个关于multiple annotations的例子,它简单地复制了go.layout.Annotation()来绘制2个箭头。
但是我需要画100多个箭头,我不知道怎么画。 go.layout.Annotation() 是元组类型,每个箭头都接受 dict() ,有没有简单的方法可以将更多的 dict() 添加到 tuple() ?
谢谢。
我解决了我自己的问题。
fig.layout.annotations接受列表,每个箭头的参数是一个dict()。所以思路是创建一个很多dict()的列表,然后用fig.update_layout(annotations = list)画多个箭头。
每个箭头的 dict() 如下所示:
arrow = go.layout.Annotation(dict(
x= x_end,
y= y_end,
xref="x", yref="y",
text="",
showarrow=True,
axref = "x", ayref='y',
ax= x_start,
ay= y_start,
arrowhead = 3,
arrowwidth=1.5,
arrowcolor='rgb(255,51,0)',)
)
可以像这样轻松创建多个箭头的列表:
list = list + [dict()]
然后,更新图:
fig.update_layout(
annotations= list_of_all_arrows,)
如果所有箭头都在时间序列中,这是最终结果: