Ich entwerfe eine Vorlage für ein Bokeh Plot, die regelmäßig aktualisiert wird, um die neuen Daten in einer Datei anzuzeigen, die ich lesen würde.Bokeh zeigt keine Plots
Momentan benutze ich nur einen einfachen Generator, der nur numpige Arrays erstellt, um die App zu testen.
Nichts erscheint jedoch im Browser, wenn ich bokeh serve --show test.py
ausführen. Ich bin mir nicht sicher, wie es weitergehen soll, da es keine Fehler gibt. Mein Versuch, mit einer print-Anweisung zu debuggen, zeigt, dass der Callback nicht funktioniert.
Dieser spezielle Test sollte bei jeder Aktualisierung mehrere Histogramme auf der gleichen Figur machen.
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)
Irgendwelche Ideen?
Großartig, jetzt kann ich mit dem Debuggen beginnen. Irgendwelche Ideen darüber, warum es so funktioniert? – Lucidnonsense
Ich bin mir nicht sicher, meine beste Vermutung ist, dass der Hauptteil auf der Seite von Bokeh ist und dann unseren Code aufruft, also schreiben wir technisch nicht den Hauptteil – bourneeoo