2017-02-07 2 views
2

Ich versuche, ein Streaming-Bokeh Plot in eine HTML-Datei mit dem autoload_server Funktion einzubetten: "Bokeh dienen", und dann:eine in HTML eingebettete Bokeh Plot Streaming

from bokeh.client import push_session 
from bokeh.embed import autoload_server 
from bokeh.models import ColumnDataSource 
from bokeh.plotting import figure, curdoc 

data = dict(x=[], y=[]) 
source = ColumnDataSource(data) 

plot = figure() 
plot.circle(source=source, x='x', y='y') 

counter = -1 

def update_data(): 
    global xDate, yWind, counter 
    counter += 1 
    xDate = counter 
    yWind = counter 
    new_data_wind = dict(x=[xDate], y=[yWind]) 
    source.stream(new_data_wind, 300) 

curdoc().add_root(plot) 
curdoc().add_periodic_callback(update_data, 300) 

session = push_session(curdoc()) 
script = autoload_server(plot, session_id=session.id) 
print(script) 

ich im Grunde einen Bokeh-Server mithilfe starten Führen Sie den Code aus und fügen Sie das angegebene Skript in eine HTML-Datei ein.

Zunächst würde kein Plot angezeigt, aber nach dem Hinzufügen von --allow- websocket-origin = localhost: 63342 zum bokeh serve-Befehl würde die Seite das Plot-Grid anzeigen, aber es werden keine Daten angezeigt.

Hat jemand eine Idee, warum die Datenstreamingfunktion nicht zu funktionieren scheint oder was ich ändern kann, um den eingebetteten Plot die Daten streamen zu lassen?

Ich bin dankbar für jede weitere Eingabe, da ich noch einiges im Internet finden muss.

EDIT Ich habe die Lösung für mein Problem gefunden und wird es hier lassen, wenn jemand etwas Ähnliches trifft:

Das Codefragment:

session.loop_until_closed() 

Bedürfnisse am Ende hinzugefügt werden Im obigen Beispiel wird die Sitzung wiederholt und das letzte Diagramm wird im Browser aktualisiert.

Antwort

1

Ich werde nach nur meine Antwort, wie oben zu sehen ist, so wird diese als offene Frage nicht mehr auftauchen:

Das Codefragment:

session.loop_until_closed() 

Bedürfnisse Ende hinzugefügt werden Im obigen Beispiel wird die Sitzung wiederholt und das letzte Diagramm wird im Browser aktualisiert.