Holoviews(Bokeh)与reveal.js

3

我使用Holoviews (Bokeh)交互式绘图制作了一份演示文稿。在notebook中,使用rise插件可以正常显示,但是当我将其转换为reveal.js (v3.6.0)幻灯片时,输出结果无法显示。即使通过CDN进行发布也无法解决问题。有人遇到过这种情况吗?


我没有直接尝试过在reveal.js中使用它,但是在基于reveal.js的https://damianavila.github.io/RISE上可以正常工作。在https://pyviz.github.io/pyviz/tutorial/01_Workflow_Introduction.html上有一个示例笔记本。 - James A. Bednar
是的,正如我在帖子中提到的那样,它在 Rise 中运作良好。这就是为什么使用 reveal.js 导出似乎会失败的奇怪之处。 - Scheherzaade
啊,我觉得我不太明白你在这里尝试做什么,但无论如何,这显然不是我尝试过的东西。祝你好运! - James A. Bednar
谢谢!reveal.js 允许我们将幻灯片导出为 HTML,与不使用 Jupyter 笔记本的其他人分享。因此,如果我们想要在自己的主页上嵌入演示文稿,演示文稿需要被导出为 HTML 幻灯片。 - Scheherzaade
顺便提一下,如果笔记本更改为在hv.extension()中使用matplotlib而不是bokeh,则“jupyter nbconvert --to slides Bednar_INDEX_2018.ipynb”可以正常工作,因此看起来这是bokeh+reveal.js的问题,但仅在笔记本上下文之外导出时存在问题。此外,导出的HTML文件仍然不像单独的幻灯片,除非您执行“jupyter nbconvert --to slides Bednar_INDEX_2018.ipynb --post serve”,这可能并不理想,因为它仍然需要一个正在运行的进程。 - James A. Bednar
显示剩余2条评论
1个回答

3

我在能够重现此问题后,在RISE网站上提出了一个问题,RISE的作者指向了Bokeh网站上的这个问题,让我在我的情况下使其正常工作。解决方案很简单,就是不要告诉RISE跳过包含hv.extension("bokeh")的单元格。该单元格加载BokehJS,任何基于Bokeh的图都需要它才能显示,对于实时演示跳过它很好用,但显然对于任何导出版本都不适用。告诉RISE不要跳过该单元格后,我的示例笔记本现在可以使用jupyter nbconvert --to slides Bednar_INDEX_2018.ipynb转换为.html并正常工作,并且可以按照RISE文档中的说明将其转换为PDF。 PDF输出的格式并不完美,但所有图都至少显示出来了。


PDF输出中存在一些杂乱的文本,无论何时都会出现Bokeh工具栏,但是如果关闭工具栏,它应该是可用的:from holoviews.plotting.bokeh import ElementPlot; ElementPlot.toolbar=None - James A. Bednar
太棒了!非常感谢,詹姆斯。我也在Reveal上提出了这个问题,但他们说这可能更适合在stackoverflow上解决。不管怎样,现在图表终于显示出来了,我太高兴了。另一方面,我隐藏了输入单元格,只展示图表,但现在它们重新出现了。看来还需要一些调整。再次非常感谢 :) - Scheherzaade

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接