问题描述
散景论坛上的交叉发布:https://discourse.bokeh.org/t/display-json-item-serialized-json-in-jupyter-notebook/7245/3
我已经使用 bokeh.embed.json_item
将我的散景图序列化为 json,如文档中所述:https://docs.bokeh.org/en/latest/docs/reference/embed.html#bokeh.embed.json_item
我现在想在 Python(Jupyter 笔记本)中再次加载它。我该怎么做?文档只提到使用 JavaScript 加载它并将其嵌入网页:https://docs.bokeh.org/en/latest/docs/user_guide/embed.html
一种方法是在 IPython notebook 中显示一个 HTML 对象,如下所示:
from IPython.core.display import display,HTML
html_plot = f'''
<!DOCTYPE html>
<html lang="en">
<head>
<script src="https://cdn.bokeh.org/bokeh/release/bokeh-2.2.3.min.js"
crossorigin="anonymous"></script>
<script src="https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.2.3.min.js"
crossorigin="anonymous"></script>
<script src="https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.2.3.min.js"
crossorigin="anonymous"></script>
</head>
<body>
<div id="myplot"></div>
<script>
item = {plot_json}
bokeh.embed.embed_item(item,"myplot");
</script>
</body>
'''
display(HTML(html_plot))
然而,这并没有让我回到我可以操纵的散景 figure
对象。
解决方法
从 Bokeh 2.3 开始,将导出的 JSON 重新摄取回 Python 仍然是 open issue。