使用 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,)

如果所有箭头都在时间序列中,这是最终结果: