微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用 plotly 首先,像这样设置您的“基本”案例:然后,使用新值构建 fig` 对象中的现有值:随机数随机游走

如何解决用 plotly 首先,像这样设置您的“基本”案例:然后,使用新值构建 fig` 对象中的现有值:随机数随机游走

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

import plotly.graph_objects as go

fig = go.figure()

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

noline

虽然我想要这段代码输出(所以用一条线连接点)

import plotly.graph_objects as go

fig = go.figure()

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

line

很遗憾,我无法加入 [1][5],因为我正在从定期更新的文件获取数据。

解决方法

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

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

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

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

您也可以向它们附加更多值。唉,不是直接的,因为它们是元组。所以你必须在列表和元组之间切换,但这不是什么大问题。

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

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

enter image description here

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

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

enter image description here

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

随机数

这是另一个向图中现有轨迹添加随机值的片段:

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,size=1).tolist())
fig.show()

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

enter image description here

随机游走

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

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()

enter image description here

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

,

尝试使用

import plotly.express as px

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

您可以在 xVal 之外设置一个名为 yValpx.line 的空列表,将您的数字附加到列表中并将实际行写为 px.line(x=xVal,y=yVal) 或 {{ 1}}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。