2017-10-17 5 views
0

Ich möchte Bokeh verwenden Echtzeitdaten aus einer Simulation Skript grafisch darzustellen. Im Grunde wird die Simulation die Quelle der Echtzeit-Streaming-Daten sein und ich möchte, dass die Bokeh-Graphen jedes Mal aktualisiert werden, wenn mein Simulationsskript dies anzeigt. Ich möchte auch programmatisch den Bokeh-Server starten und wollte nicht den Haupt-Thread blockieren, so dass ist, warum ich mit dem eigenständigen einbetten Beispiel gestartet:Visualisierungs- Simulation mit Bokeh

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

jedoch wurde mir klar, dass die Verwendung dieses Beispiels als Ausgang Punkt könnte fehlerhaft sein, wie wenn ich die IOloop keinen anderen Code starte darunter laufen kann, was ein Problem ist, weil all mein Simulationscode ausgeführt werden muss, während der Bokeh-Server auch läuft.

Kann jemand schiebt mich in der richtigen Richtung, wie dies zu erreichen? Grundsätzlich muss ich Updates zu Bokeh schicken ihre Graphen zu aktualisieren, wenn das Simulationsskript es erzählt und müssen das Bokeh haben Diagramme zeigen/interaktiv sein zur gleichen Zeit wie mein Simulationscode Skript ausgeführt wird. Ich möchte auch halten, so weit wie möglich getrennt (dh die Simulation auf eigenem ohne Bokeh grafischer Darstellung ausgeführt wird, in Betrieb genommen oder umgekehrt - nicht will, dass mein ursprünglichen Simulationscode, um schlammig bis diese Arbeit zu machen)

+0

Sie können Ihren Bokeh-Server mit einem periodischen Rückruf ausführen, die – Seb

+0

Interessante in welchen Ausgabedateien Ihren Simulationscode lesen konnte produzieren kann - ich will, dass ein Versuch geben. Das könnte später tatsächlich anwendbar sein, wenn große Dateien ausgegeben werden. Momentan ist alles, was der Simulationscode produziert, nur In-Memory und schreibt noch kein Objekt in die Datei. – hhprogram

Antwort

0

Einfach posten, wenn jemand neugierig war. Ich habe ein Spielzeug-Beispiel gemacht, in dem ich ein Skript ausgeführt habe und einige "Daten" erzeugt habe. Habe es mit bokeh serve --show run.py ausgeführt um auch den Bokeh Server laufen zu lassen.

Mein Spielzeug Beispiel: https://github.com/bokeh/bokeh/tree/master/examples/app/spectrogram

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

Idealerweise würde ich separat meinen bokeh Server App öffnen zu können, gerade und dann meinen Python-Skript ausführen: https://github.com/hhprogram/Learning_Examples/tree/master/BokehTest

Diese Beispiele hilfreich waren Wann immer ich wollte und sobald dieses Skript lief und Daten produzierte, wurden meine Bokeh-Diagramme aktualisiert, aber bis jetzt noch nicht implementiert. Hoffe, das ist hilfreich für einige und offen für Kritik an meinem Code, also sei nicht schüchtern.