gpt4 book ai didi

python - 具有数据源动态更新的 Bokeh 应用程序

转载 作者:行者123 更新时间:2023-11-28 21:50:49 25 4
gpt4 key购买 nike

考虑 sliders_app.py Bokeh 中的例子。我希望能够定期更新情节。例如,假设我们想要每 10 秒对图进行一次时移。我如何在应用程序的上下文中执行此操作?

为了说明目标,我想将以下极其简单的逻辑添加到应用程序中,该应用程序只是循环移动 X 和 Y。

请注意,没有简单的方法可以将此循环插入原始 sliders_app.py(它会去哪里?)。

  while True:
N = 200
# Get the current slider values
a = self.amplitude.value
b = self.offset.value
w = self.phase.value
k = self.freq.value

# Circularly time-shift X and Y
x = self.source.data["x"]
x = np.roll(x,1)
y = a*np.sin(k*x + w) + b

# Update the data container for the plot
self.source.data = dict(x=x, y=y)

# Sleep until the next update
time.sleep(0.1)

在 Bokeh 中有什么方法可以做到这一点吗? Bokeh 是否有任何计时器小部件,可以连接计时器回调以更新数据源?

如果没有,是否有计划在未来某个时间合并此功能?

更新

看起来像spectrogram.py使用线程来处理这种类型的更新。对于任何有兴趣的人,这可能是成功的方法。

最佳答案

有几个选项。 AjaxDataSource 可以使客户端定期从 REST 端点直接拉取数据。这是一个显示其用法的示例:

https://github.com/bokeh/bokeh/blob/master/examples/plotting/file/ajax_source_realtime.py

请注意,频谱图可能很快会被重写以使用它,并减少手写的 JS 量。 (频谱图相当复杂并且有一些自定义 JS,我们一直在努力随着时间的推移减少该数量)

另外值得一提的是,频谱图中的线程与服务器端的事物有关,它与 Bokeh 本身或获取 Bokeh 更新没有任何关系。

如果您在 Bokeh 服务器中运行一个应用程序,您可以根据需要随时更新数据源模型,绘图就会响应。

关于python - 具有数据源动态更新的 Bokeh 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31392319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com