我想在散景中绘制一个实时时间序列。我想在每次更新时仅绘制新数据点。我怎么能这样做?
散景网站上有动画情节的例子,但它每次都会重新绘制整个画面。另外,我正在寻找一个简单的例子,我可以逐点地制作时间序列的实时情节。
答案 0 :(得分:12)
截至Bokeh 0.11.1
,现在有一个流式接口,用于Bokeh服务器应用程序中的列数据源。您可以在此处查看并轻松运行示例:
https://github.com/bokeh/bokeh/tree/master/examples/app/ohlc
该示例显示了具有MACD指标(基于合成价格数据)的实时更新OHLC图表,该指标仅在每次更新时使用最新数据点更新图表。
基本上,使用流媒体界面由两部分组成。首先创建一个具有相同"形状的新dict
"作为列数据源:
new_data = dict(
time=[t],
open=[open],
high=[high],
low=[low],
close=[close],
average=[average],
color=[color],
)
然后将此传递给.stream
方法,并带有一个可选的rollover
参数,该参数指定在浏览器中保留多大的缓冲区(早期数据开始被删除):
source.stream(new_data, 300)
然后,new_data
中的少量数据将被发送到情节,而不是一切。