ボケ味でライブ時系列をプロットしたい。更新のたびに新しいデータポイントのみをプロットしたいと思います。これどうやってするの ?
ボケのウェブサイトにアニメーションプロットの例がありますが、毎回全体像を再描画する必要があります。また、時系列のライブプロットをポイントごとに実行できる簡単な例を探しています。
Bokeh 0.11.1
の時点で、Bokehサーバーアプリの列データソースへのストリーミングインターフェイスがあります。ここで例を確認して簡単に実行できます。
https://github.com/bokeh/bokeh/tree/master/examples/app/ohlc
この例は、MACDインジケーター(合成ティックデータに基づく)を備えたライブ更新OHLCチャートを示しています。このチャートは、更新のたびに最新のデータポイントでのみプロットを更新します。
基本的に、ストリーミングインターフェイスの使用は2つの部分で構成されます。まず、列のデータソースと同じ「形状」で新しい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
内の少量のデータのみがプロットに送信され、すべてではありません。