0
私は、読んでいるファイルに新しいデータを表示するために定期的に更新するbokehプロット用のテンプレートを設計しています。Bokehにプロットが表示されない
現時点では、単純なジェネレータを使用しているだけで、アプリをテストするだけの簡単な配列になります。
ただし、bokeh serve --show test.py
を実行するとブラウザに何も表示されません。私はエラーがないので、どのように進めるか分からない。 printステートメントでデバッグしようとすると、コールバックが機能していないことがわかります。
この特定のテストでは、各更新時に同じ図に複数のヒストグラムを作成する必要があります。
import numpy as np
from bokeh.io import curdoc
from bokeh.models import ColumnDataSource
from bokeh.plotting import figure
def histplot_updater(sources, data_stream):
def updater():
data = data_stream.next()
print 'got data'
for i in range(data.shape[1]):
d = data[:, i]
mind = np.min(d)
maxd = np.max(d)
step = max((maxd - mind) // 100, 1)
hist, edges = np.histogram(d, density=True, bins=range(mind, maxd + 2, step))
new_data = {'top': hist, 'left': edges[:-1], 'right': edges[1:]}
sources[i].data = new_data
return updater
def init_histplot(f, data, **kwargs):
hs = []
ss = []
for i in range(data.shape[1]):
source = ColumnDataSource(dict(top=[], left=[], right=[]))
kwgs = {k: v[i] for k,v in kwargs.items()}
h = f.quad(top='top', bottom=0, left='left', right='right', source=source, **kwgs)
hs.append(h)
ss.append(source)
return hs, ss
if __name__ == '__main__':
fig = figure()
Data = (np.random.normal([0, 1], [1, 2], (1000, 2)) for i in xrange(100))
h_sources = init_histplot(fig, Data)[1]
curdoc().add_root(fig)
curdoc().add_periodic_callback(histplot_updater(h_sources), 1000)
これで、デバッグを開始できます。なぜそれがそれのように機能するかについての任意のアイデア? – Lucidnonsense
私は確信していませんが、私の最高の推測は、メインはボケの側にあり、それは私たちのコードを呼び出すので、私たちは技術的にメイン – bourneeoo