Bokeh - Einbetten von Plots und Apps
Diagramme und Daten in Form von eigenständigen Dokumenten sowie Bokeh-Anwendungen können in HTML-Dokumente eingebettet werden.
Standalone-Dokument ist ein Bokeh-Plot oder ein Dokument, das nicht vom Bokeh-Server unterstützt wird. Die Interaktionen in einem solchen Plot erfolgen ausschließlich in Form von benutzerdefiniertem JS und nicht in Form von Pure Python-Rückrufen.
Bokeh-Diagramme und -Dokumente, die vom Bokeh-Server unterstützt werden, können ebenfalls eingebettet werden. Solche Dokumente enthalten Python-Rückrufe, die auf dem Server ausgeführt werden.
Bei eigenständigen Dokumenten wird durch die Funktion file_html () ein roher HTML-Code abgerufen, der ein Bokeh-Diagramm darstellt.
from bokeh.plotting import figure
from bokeh.resources import CDN
from bokeh.embed import file_html
fig = figure()
fig.line([1,2,3,4,5], [3,4,5,2,3])
string = file_html(plot, CDN, "my plot")
Der Rückgabewert der Funktion file_html () kann als HTML-Datei gespeichert oder zum Rendern über URL-Routen in der Flask-App verwendet werden.
Im Falle eines eigenständigen Dokuments kann seine JSON-Darstellung durch die Funktion json_item () abgerufen werden.
from bokeh.plotting import figure
from bokeh.embed import file_html
import json
fig = figure()
fig.line([1,2,3,4,5], [3,4,5,2,3])
item_text = json.dumps(json_item(fig, "myplot"))
Diese Ausgabe kann von der Funktion Bokeh.embed.embed_item auf einer Webseite verwendet werden -
item = JSON.parse(item_text);
Bokeh.embed.embed_item(item);
Bokeh-Anwendungen auf Bokeh Server können auch eingebettet werden, sodass bei jedem Laden einer Seite eine neue Sitzung und ein neues Dokument erstellt werden, sodass eine bestimmte vorhandene Sitzung geladen wird. Dies kann mit der Funktion server_document () erreicht werden. Es akzeptiert die URL zu einer Bokeh-Serveranwendung und gibt ein Skript zurück, das bei jeder Ausführung des Skripts neue Sitzungen von diesem Server einbettet.
Das server_document() functionakzeptiert URL-Parameter. Wenn es auf "Standard" gesetzt ist, wird die Standard-URL http: // localhost: 5006 / verwendet.
from bokeh.embed import server_document
script = server_document("http://localhost:5006/sliders")
Die Funktion server_document () gibt ein Skript-Tag wie folgt zurück:
<script
src="http://localhost:5006/sliders/autoload.js?bokeh-autoload-element=1000&bokeh-app-path=/sliders&bokeh-absolute-url=https://localhost:5006/sliders"
id="1000">
</script>