ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Bokeh notebook 制作 Reveal.js 幻灯片时图表不显示,如何检查 output_notebook 单元格?

Bokeh notebook 制作 Reveal.js 幻灯片时图表不显示,如何检查 output_notebook 单元格? Bokeh notebook 制作 Reveal.js 幻灯片时图表不显示如何检查 output_notebook 单元格【免费下载链接】bokehInteractive Data Visualization in the browser, from Python项目地址: https://gitcode.com/GitHub_Trending/bo/bokeh用 Jupyter notebook 配合 Reveal.js 把单元格生成为幻灯片时一个常见的故障是幻灯片里其他单元格内容正常唯独 Bokeh 图表不显示。Bokeh 文档在 Jupyter 用户指南 的 Notebook slides 一节明确指出了这类问题的根因和检查方法幻灯片生成器会跳过标记为 skip 的单元格而output_notebook单元格的渲染输出是 BokehJS 库加载的前提——如果这个单元格被跳过BokehJS 不会加载幻灯片中的 Bokeh 图表就不会显示。本文说明如何定位并检查这个单元格。问题成因output_notebook 的渲染输出负责加载 BokehJS在经典 Jupyter notebook 中内联显示 Bokeh 图表的标准做法是在代码中调用bokeh.io的output_notebook替代或补充output_file然后调用show图表会显示在下一个输出单元格中不需要 Bokeh server也不要求其他修改。在 Reveal.js 幻灯片场景下这条链路易断掉的地方只有一个Reveal.js 生成幻灯片时会忽略单元格类型cell type设为skip的单元格。output_notebook单元格的渲染输出正是用来确保 BokehJS 库加载的一旦该单元格被跳过BokehJS 不会加载Bokeh 图表就全部无法显示。也就是说问题不在图表代码本身而在于幻灯片生成配置中output_notebook单元格的单元格类型。另外注意一个适用边界Reveal.js 幻灯片中只能包含 standalone非 server的 Bokeh 图表。Bokeh server 应用嵌入 notebook 需要额外的依赖和网络配置参见 Jupyter 用户指南 的 Required Dependencies 一节不适用于本场景也不要在幻灯片里依赖它。检查与修复 output_notebook 单元格按以下顺序检查你的 notebook找到调用output_notebook的输入单元格确认它已经执行过、并且有渲染后的输出单元格。检查该单元格的 Reveal.js 单元格类型通常在单元格的slideshow配置中设置例如 cell tags 或 attributes 里的slide_type如果单元格类型是skip这就是图表不显示的原因。output_notebook单元格被幻灯片生成器忽略其输出不会出现在幻灯片中BokehJS 无法加载。如果只是想让这个单元格不占一张幻灯片页面、但又不能让它被跳过把单元格类型改为notes。notes类型会把单元格内容放进演讲者备注单元格仍然会被渲染BokehJS 得以加载而幻灯片页面上看不到这个单元格。确认图表单元格本身使用show显示图表而不是依赖output_file。典型的最小代码结构如下具体数据源换成你自己的from bokeh.io import output_notebook, show from bokeh.plotting import figure output_notebook() # 这个单元格不要设为 skip p figure() # ... 添加你的数据与 glyph ... show(p)如果一个输出单元格需要显示多个图表在同一个输入单元格中多次调用show即可图表会按调用顺序依次显示。修复的核心动作只有一处把output_notebook单元格的类型从skip改为notes或任何不会被跳过的类型。验证图表是否恢复显示验证方式就是重新生成幻灯片并查看渲染结果重新用 Reveal.js 生成幻灯片在生成的幻灯片页面中检查原本空白的位置Bokeh 图表应当正常渲染出来说明 BokehJS 已随output_notebook单元格的输出加载成功。如果按上述方法把单元格类型设为notes或保留为可见幻灯片后图表仍不显示再确认output_notebook单元格确实在 notebook 中被执行过且带有渲染输出——未执行的单元格没有输出也就无法完成 BokehJS 的加载。限制说明幻灯片中仅支持 standalone Bokeh 图表server 应用不在幻灯片支持范围内。notebook_handleTrue提供的 notebook handle 功能配合push_notebook原地更新图表目前只支持经典 Jupyter notebook未实现在 JupyterLab 中它解决的是更新已显示图表的问题与幻灯片图表不显示无关本文场景不需要它。若使用 JupyterLab 而非经典 notebook 进行开发调试需要 JupyterLab 3.0 及以上版本并通过pip install jupyter_bokeh或conda install jupyter_bokeh安装jupyter_bokeh扩展之后用法与经典 notebook 相同。以上检查路径与判断依据均来自 Jupyter 用户指南的 Notebook slides 一节。【免费下载链接】bokehInteractive Data Visualization in the browser, from Python项目地址: https://gitcode.com/GitHub_Trending/bo/bokeh创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表