web-dev-qa-db-ja.com

ボケ味の時系列ストリーミング

ボケ味でライブ時系列をプロットしたい。更新のたびに新しいデータポイントのみをプロットしたいと思います。これどうやってするの ?

ボケのウェブサイトにアニメーションプロットの例がありますが、毎回全体像を再描画する必要があります。また、時系列のライブプロットをポイントごとに実行できる簡単な例を探しています。

16
Maxi

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内の少量のデータのみがプロットに送信され、すべてではありません。

12
bigreddot