2

我希望一些重度 Jupyter 和散景用户可能对此有解决方法。所以我的 Jupyter 笔记本中有一堆bokeh图,我想将笔记本导出到pdf. 在 Jupyter Notebook 文件菜单中,有一个选项可以将笔记本下载为pdf. 另外——也是我的首选路线——是使用nbconvert.

问题是bokeh绘图没有导出到最终pdf文件中。 Bokeh不会将其绘图导出Latex为编译 pdf 时捕获的格式。相反,像这样的包matplotlib将为每个图生成 png 文件,然后将这些图链接到 Latex 中以生成 pdf。

现在,当我导出笔记本时,所有文本都以 pdf 格式显示,但没有一个绘图通过。如果我导出到 html 文件,这些图就会出现——但如果我尝试打印文档,这些图当然会溢出页面。

有没有人找到一个体面的解决方法?与我一起工作的用户仍然希望能够打印出文档并进行标记。

4

1 回答 1

3

标准交互式散景图实际上是 JSON 的集合,以及一个 JavaScript 库 (BokehJS),该库将 JSON 呈现为浏览器中所需的图。由于 PDF 文档不执行 JavaScript,因此永远不可能以 PDF 格式嵌入标准散景图。

但是,Bokeh 也可以将绘图的静态版本导出为 PNG 或 SVG,它们可以嵌入到 PDF 中。请参阅用户指南中的导出图部分。您首先需要安装一些可选的依赖项(phantomJS、selenium 和枕头),然后导出绘图将是这样的:

export_png(plot, filename="plot.png")

然后,特别是在笔记本中,您可以显示内联图像,例如:

from IPython.display import Image
Image('plot.png')
于 2018-01-13T00:58:56.047 回答