2016-04-19 10 views
3

Ich habe ein interaktives Bokeh-Diagramm mit verschiedenen Widgets erstellt, die eine Manipulation der Daten ermöglichen. Ich möchte nun verstehen, wie man einen solchen Plot standardmäßig teilt oder wie ich ihn zum Teilen speichere.Interaktives Bokeh-Diagramm speichern

Das Plot wird mit der Methode curdoc erstellt und dann mit session.show() an den Bokeh-Server ausgegeben.

#create current visualization using plot p and widgets inputs 
curdoc().add_root(HBox(inputs, p, width=1100)) 

#run the session 
session = push_session(curdoc()) 
session.show() # open the document in a browser 
session.loop_until_closed() # run forever 

Antwort

3

Löst die App tatsächlichen Python-Code aus?

Wenn nicht, könnten Sie es als eigenständiges Dokument ohne Server (z. B. mit CustomJS Rückrufen) bearbeiten. Das würde nur eine eigenständige statische HTML-Datei generieren, die Sie überall veröffentlichen oder senden können und auf die Sie sofort zugreifen können.

Wenn Ihre App tut stützen sich auf aktuelle Python-Code die Ausführung der Arbeit zu tun, dann muss es eigentlich sein irgendwo läuft für Benutzer mit ihr zu interagieren. Zunächst einmal würde ich vorschlagen, dass Sie eine echte App erstellen, die auf dem Server läuft, wie die in the demo app gallery (siehe auch Use Case Scenarios im Benutzerhandbuch). Eine echte Server-App, d. H. Eine, die Sie wie ausführen, ist eindeutig gegenüber der Verwendung von bokeh.client, vor allem für "Publishing" -Szenarien (es wird auch einfacher/weniger Code und leistungsfähiger). Dann könnte die App zu verteilen ein paar Dinge bedeuten:

  • Sie geben ihnen das Skript und sie laufen bokeh serve app.py lokal selbst
  • You „bereitstellen“, um die App, indem sie es verlassen mit einer URL auf einem Server ausgeführt wird, die zugänglich ist

sehen, je nachdem, wie viel Rechen die App funktioniert, und wie viele Benutzer Sie zu einem bestimmten Zeitpunkt erwarten, die zweite Option könnte so einfach sein wie laufen bokeh serve app.py irgendwo an Benutzer, die Sie in der Lage sein wollen. Wenn jedoch ein hohes Rechenaufkommen besteht oder Sie viel Traffic erwarten, benötigen Sie möglicherweise ausgefeiltere "Scale-out" -Implementierungen hinter einem Load-Balancer. Weitere Informationen finden Sie in der Bedienungsanleitung unter Deployment Scenarios, und natürlich helfen wir Ihnen gerne mit ausführlicheren Diskussionen über die public mailing list. Schließlich sollte ich erwähnen, dass in naher Zukunft automatisierte skalierbare Veröffentlichung von Bokeh-Anwendungen als eine Funktion auf https://anaconda.org/

+0

verfügbar ist Ja, die App löst Python-Code zur kontinuierlichen Aktualisierung der Daten auf Widget-Auswahl, sehr ähnliche Einstellung zu den Filmen Beispiel in Ihrem Link angezeigt. Ich glaube, ich bin daran interessiert zu verstehen, wie eine solche App zu implementieren – Marcus

+0

die Links, die ich oben gab eine gute Menge an Informationen über verschiedene Einsatzszenarien. Darüber hinaus würde ich vorschlagen, die öffentliche Mailingliste zu besuchen, da es wahrscheinlich eher eine Diskussion über die Details Ihres speziellen Szenarios sein wird, um Hilfe zu leisten. – bigreddot

Verwandte Themen