2024-05-23 13:23:19 发布
网友
我想在博克画一个实时的时间序列。我只想在每次更新时绘制新的数据点。我该怎么做?
bokeh网站上有一个动画情节的例子,但是每次都要重新绘制整个画面。此外,我正在寻找一个简单的例子,我可以做一个时间序列点一点的现场绘图。
从Bokeh 0.11.1开始,Bokeh服务器应用程序中有一个到列数据源的流接口。您可以在这里看到并轻松运行一个示例:
0.11.1
https://github.com/bokeh/bokeh/tree/master/examples/app/ohlc
该示例显示了一个带有MACD指示符(基于合成刻度数据)的实时更新OHLC图,该图仅在每次更新时使用最新的数据点更新绘图。
基本上,使用流接口由两部分组成。首先创建一个与列数据源具有相同“形状”的新dict:
dict
new_data = dict( time=[t], open=[open], high=[high], low=[low], close=[close], average=[average], color=[color], )
然后将其传递给.stream方法,该方法带有一个可选的rollover参数,指定要在浏览器中保留多大的缓冲区(早期的数据开始丢失):
.stream
rollover
source.stream(new_data, 300)
然后,只有new_data中的少量数据将被发送到绘图,而不是全部。
new_data
从Bokeh
0.11.1
开始,Bokeh服务器应用程序中有一个到列数据源的流接口。您可以在这里看到并轻松运行一个示例:https://github.com/bokeh/bokeh/tree/master/examples/app/ohlc
该示例显示了一个带有MACD指示符(基于合成刻度数据)的实时更新OHLC图,该图仅在每次更新时使用最新的数据点更新绘图。
基本上,使用流接口由两部分组成。首先创建一个与列数据源具有相同“形状”的新
dict
:然后将其传递给
.stream
方法,该方法带有一个可选的rollover
参数,指定要在浏览器中保留多大的缓冲区(早期的数据开始丢失):然后,只有
new_data
中的少量数据将被发送到绘图,而不是全部。相关问题 更多 >
编程相关推荐