我希望一些沉重的Jupyter和散景用户可能有一个解决方法。所以我的Jupyter笔记本中有一堆bokeh
图,我想将笔记本导出到pdf
。在Jupyter Notebook文件菜单中,有一个选项可以将笔记本下载为pdf
。另外 - 我的首选路线 - 是使用nbconvert.
问题是bokeh
图未导出到最终的pdf
文件中。 Bokeh
不会将其图表导出为捕获的格式通过Latex
编译pdf。相反,像matplotlib
这样的包将为每个绘图生成png文件,然后这些绘图在胶乳中链接以生成pdf。
现在,当我导出笔记本时,所有文本都以pdf格式显示,但没有一个图表出现。如果我导出到html文件,那么这些图就会出现 - 但是如果我尝试打印文档,那么当然这些图会溢出页面。
有没有人为此找到了合适的解决方法?与我合作的用户仍然希望能够打印出文档并对其进行标记。
答案 0 :(得分:1)
标准交互式散景图实际上是JSON的集合,以及一个JavaScript库(BokehJS),它将JSON渲染为浏览器中所需的绘图。由于PDF文档不执行JavaScript,因此永远不可能以PDF格式嵌入标准的Bokeh图。
但是,Bokeh还可以将静态版本的图形导出为PNG或SVG,这些版本可以嵌入到PDF中。请参阅用户指南中的Exporting Plots部分。您首先需要安装一些可选的依赖项(phantomJS,selenium和pillow),然后导出绘图将是这样的:
export_png(plot, filename="plot.png")
然后,特别是在笔记本中,您可以使用以下内容显示图像:
from IPython.display import Image
Image('plot.png')