繁体   English   中英

用 plotly 连接线之间的间隙

[英]Connect gaps between lines with plotly

我有一个脚本,它会定期更新 plotly 图形并添加一个散点。 我想要一条连接每个点的线。 我获得了此代码的等效项:

import plotly.graph_objects as go

fig = go.Figure()

fig.add_scatter(x=[1],y=[2])
fig.add_scatter(x=[5],y=[4])

诺林

虽然我想要这个代码的 output (所以用一条线连接点)

import plotly.graph_objects as go

fig = go.Figure()

fig.add_scatter(x=[1,5],y=[2,4])

线

不幸的是,我无法加入[1][5] ,因为我正在从定期更新的文件中获取数据。

您正在尝试在来自两个不同轨迹的标记之间添加一条线,因为您正在使用:

fig.add_scatter(x=[1],y=[2])
fig.add_scatter(x=[5],y=[4])

据我所知,那是行不通的。 只能在同一迹线中的相同点之间绘制线。 我不确定我是否理解为什么不能将新值存储在列表中,但我们暂时将其排除在讨论之外。 好消息是,您可以通过以下方式访问fig对象中xy值的数据:

fig.data[0].x
fig.data[0].y

您还可以对他们进一步了解 append。 唉,不是直接的,因为它们是元组。 所以你必须在列表和元组之间切换,但这不是一个很大的问题。

首先,像这样设置您的“基本”案例:

import plotly.graph_objects as go
fig = go.Figure()
fig.add_scatter(x=[1],y=[2])
fig.show()

在此处输入图像描述

然后,使用新值构建 fig` object 中的现有值:

fig.data[0].x = tuple(list(fig.data[0].x) + [4])
fig.data[0].y = tuple(list(fig.data[0].y) + [5])
fig.show()

在此处输入图像描述

如您所见,这些点之间会自动添加一条线,因为它们是同一轨迹中的点。

随机数

这是另一个将随机值添加到图中现有跟踪的片段:

fig.data[0].x = tuple(list(fig.data[0].x) + np.random.randint(low=0, high=10, size=1).tolist())
fig.data[0].y = tuple(list(fig.data[0].y) + np.random.randint(low=0, high=10, size=1).tolist())
fig.show()

如果你运行几次,例如在它自己的 JupyterLab 单元中,你最终会得到这样的结果:

在此处输入图像描述

随机游走

这是另一个示例,它采用跟踪中的最后一个值并添加一个随机数,因此您将在下面的 plot 中得到一个系列:

fig.data[0].x = tuple(list(fig.data[0].x) + [(list(fig.data[0].x)[-1] + 1)])
fig.data[0].y = tuple(list(fig.data[0].y) + (list(fig.data[0].y)[-1] + np.random.randint(low=-1, high=2, size=1)).tolist())
fig.show()

在此处输入图像描述

请注意,与上面的示例相反,本例中的x-values已设置为每次运行增加1

尝试使用

import plotly.express as px

fig = px.line(x=[1, 5], y=[2, 4])
fig.show()

您可以在px.line 、 append 之外设置一个名为xValyVal的空列表,将您的数字写入列表并将实际行写入px.line(x=xVal, y=yVal)fig.add_scatter(x=val, y=yVal)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM