2017-10-17 10 views
0

Bokehを使用して、シミュレーションスクリプトからリアルタイムデータをグラフ化したいと考えています。基本的には、シミュレーションが「リアルタイム」ストリーミングデータのソースになります。シミュレーションスクリプトが指示するたびにBokehグラフを更新します。私はまた、プログラム的にボケサーバーを開始したいと私は、スタンドアロンの埋め込み例を開始する理由ですので、メインスレッドをブロックしたくありませんでした:Bokehによるグラフシミュレーション

https://github.com/bokeh/bokeh/blob/0.12.4/examples/howto/server_embed/standalone_embed.py

しかし、私はスタートとして、この例を使用したことに気づきました私がIOloopを起動すると、その下の他のコードは実行できなくなるため、Bokehサーバーが稼働している間にすべてのシミュレーションコードが実行されている必要があるため、問題が発生する可能性があります。

誰かがこれを達成する方法の正しい方向に私をプッシュできますか?基本的には、Bokehに更新を送ってグラフを更新する必要があります。シミュレーションスクリプトでは、シミュレーションコードスクリプトの実行と同時にボークグラフの表示/インタラクティブな表示が必要です。私はまた、可能な限り分離したままにしておきたいと思います(つまり、ボケグラフの作成を開始せずにシミュレーションを実行する、あるいはその逆を実行します)。

+0

あなたのシミュレーションコードが生成する可能性のある出力ファイルを読み込める周期的なコールバックを使ってbokehサーバーを実行することができます – Seb

+0

興味深い - 私は試してみましょう。大きなファイルが出力されると、それは実際には後で道路に適用される可能性があります。今のところ、シミュレーションコードが生成しているものはすべて、メモリ内にあり、オブジェクトをまだファイルに書き出していません。 – hhprogram

答えて

0

誰かが好奇心が強い場合は、ちょうど投稿してください。私はスクリプトを実行し、いくつかの 'データ'を生成するおもちゃの例を作った。 bokehサーバーを稼働させるためにbokeh serve --show run.pyを使用して実行してください。 https://github.com/hhprogram/Learning_Examples/tree/master/BokehTest

これらの例は参考になりました:

私のおもちゃの例 理想的https://github.com/bokeh/bokeh/tree/master/examples/app/spectrogram

https://bokeh.pydata.org/en/latest/docs/user_guide/server.html#updating-from-threads

、私はちょうど別に私のボケサーバーアプリを開き、私のPythonスクリプトを実行することができるだろう私が望むたびに、スクリプトが起動してデータを生成すると、ボークグラフは更新されましたが、それをまだ実装していませんでした。これはいくつかの参考になり、私のコードの批判を開くので、恥ずかしがり屋ではないことを願っています。