Bokeh - Menyematkan Plot dan Aplikasi

Plot dan data berupa dokumen mandiri maupun aplikasi Bokeh dapat disematkan dalam dokumen HTML.

Dokumen mandiri adalah plot Bokeh atau dokumen yang tidak didukung oleh server Bokeh. Interaksi dalam plot semacam itu murni dalam bentuk JS kustom dan bukan callback Python Murni.

Plot Bokeh dan dokumen yang didukung oleh server Bokeh juga dapat disematkan. Dokumen tersebut berisi callback Python yang berjalan di server.

Untuk dokumen mandiri, kode HTML mentah yang mewakili plot Bokeh diperoleh dengan fungsi file_html ().

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")

Nilai kembali dari fungsi file_html () dapat disimpan sebagai file HTML atau dapat digunakan untuk merender melalui rute URL di aplikasi Flask.

Untuk dokumen mandiri, representasi JSON-nya dapat diperoleh dengan fungsi json_item ().

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"))

Output ini dapat digunakan oleh fungsi Bokeh.embed.embed_item di halaman web -

item = JSON.parse(item_text);
Bokeh.embed.embed_item(item);

Aplikasi Bokeh di Bokeh Server juga dapat disematkan sehingga sesi dan Dokumen baru dibuat pada setiap pemuatan halaman sehingga sesi tertentu yang ada dimuat. Ini bisa dilakukan dengan fungsi server_document (). Ia menerima URL ke aplikasi server Bokeh, dan mengembalikan skrip yang akan menyematkan sesi baru dari server itu setiap kali skrip dijalankan.

Itu server_document() functionmenerima parameter URL. Jika disetel ke 'default', URL default http: // localhost: 5006 / akan digunakan.

from bokeh.embed import server_document
script = server_document("http://localhost:5006/sliders")

Fungsi server_document () mengembalikan tag skrip sebagai berikut -

<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>