我正在尝试创建一种仪表板,用于监视ECG数据和相关功能。当通过不断更新两个ColumnDataSource
对ECG进行“动画处理”时,情节很快就开始陷入停顿并缓慢增长。目前,我正在笔记本电脑上运行此程序,但与bokeh服务器相同。
ECG本身显示一行中最近的第二个数据点,大约400个数据点。单独运行,几乎可以顺利进行,但这在仪表板方面并没有真正的帮助。另一幅图显示了心率变异性,可能是十几个圆圈,但是是从数据的最后一分钟得出的,因此是两个来源。
似乎在数据源中收集的数据越多,更新发生的越快,绘图就越慢。 rollover
的{{1}}参数削减了所收集内容的总长度,但最终并没有阻止结结。
我的代码中可能出现了一些菜鸟错误,因为我认为bokeh应该具备很好的能力来可视化如此大量的数据。所以,这是我要绘制的内容:
ColumnDataSource.stream()
我没有发现bokeh的用户指南对更新绘图有帮助。某处可能有最佳实践的集合吗?
答案 0 :(得分:0)
在评论中结束对话:每次将一个点添加到绘图中时,将重新绘制浏览器中的整个画布区域。这就是浏览器的工作方式。 sampling_rate
为250导致每秒250次绘图更新,即每4ms更新一次。由于每4毫秒要渲染(重新绘制)的点数将增加,因此浏览器的运行速度将越来越慢。
我建议将更新周期从4ms增加到大约100ms(可能是较大的数据包)