パイプを介してDynamicMapへの(ライブ)データストリームと一緒にホロビューを使用してズームインデータシェーダーで自動リサンプリングを有効にするにはどうすればよいですか?

BJS

holoviews.operation.datashader.datashade()が適用される曲線を含むholoviews.DynamicMapと一緒にパイプを通るデータフローがありますが、ズームツールを使用すると、ビューは(静的データに関して)リサンプリングされません。私のデータの非常にピクセル化された視覚化に。このリサンプリングを有効にするには、何をする必要がありますか?

python3を使用してjupyterノートブックですべてを実行します

holoviews.DynamicMapを静的データだけでセットアップし、パイプを実行していない場合、正しく機能します。

パイプを(使用せずに)充填し始めると、リサンプリングは実行されなくなります。(パイプは一切使用していません)

問題シナリオ:

(jupyterノートブックの3つのセル)

(1)インポート

import time
import numpy as np
import holoviews as hv

from holoviews.operation.datashader import datashade

from holoviews import opts
from holoviews.streams import Pipe

hv.extension('bokeh')

(2)パイプとプロットのセットアップ

#no of samples
N=100000

pipe2 = Pipe(data=[])
data_dmap = hv.DynamicMap(hv.Curve, streams=[pipe2])

data_dmap_opt = datashade(data_dmap, streams=[hv.streams.RangeXY])
data_dmap_opt.opts(width=900,xlim=(0, N),ylim=(0, 1))

(3)データストリームを生成する

def makeBigData(N):
    x = np.arange(N)
    y = np.random.rand(N)

    while True:
        time.sleep(1)
        y = np.random.rand(N)
        pipe2.send((x,y))

デバッグシナリオ:

セルの代替(2)

(代替2)静的プロットを使用したパイプとプロットのセットアップ

#default Data
N=100000
x = np.arange(N)
y = np.random.rand(N)

pipe2 = Pipe(data=[])
data_dmap = hv.DynamicMap(hv.Curve((x,y)))


data_dmap_opt = datashade(data_dmap, streams=[hv.streams.RangeXY])
data_dmap_opt.opts(width=900,xlim=(0, 100000),ylim=(0, 1))

(これは、セル(3)が実行されない限り機能し、その後、この代替手段は機能しなくなります)

期待される結果:

ノイズでプロットを継続的に更新(後の段階で実際のデータを使用)

したがって、実際のグラフは画像にサンプリングされます。サンプリングを拡大すると、実際のビューに調整する必要があります。

実際の結果:

ズームインしても、画像へのサンプリングの調整はトリガーされません。

philippjfr

あなたが抱えている問題は、whileループから更新をトリガーすると、カーネルが永続的にビジーになることです。つまり、リサンプリングするように指示するJSから到着するイベントに応答するためにカーネルが解放されることはありません。パイプ上のイベントを何らかの形で非同期にスケジュールする必要があります。ノートブックでは、竜巻のPeriodicCallbackを使用してこれを行うことができます。例:

from tornado.ioloop import PeriodicCallback
from tornado import gen

N = 100
x = np.arange(N)    

@gen.coroutine
def f():
    y = np.random.rand(N)
    pipe.send((x, y))

cb = PeriodicCallback(f, 1000)
cb.start()

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ