使用离线绘图图将 jupyter notebook 导出为 pdf;缺失图

jto*_*rca 5 python pdf plotly jupyter-notebook

我正在尝试创建我的课程计划的 pdf 导出,并且我对图表使用了离线绘图。在下面的 MWE 中,绘图将显示在 Jupyter Notebook 中,但在导出为 pdf 时不会显示。我使用File-->Download as-->PDF via Latex (.pdf).

我想制作 pdf 而不是使用 html。我知道将 html 导出转换为 pdf 可能需要额外的步骤,但我只是想知道是否有更直接的路由(代码修改?)可以让我直接通过File-->Download as-->PDF via Latex (.pdf)

from plotly.offline import download_plotlyjs, init_notebook_mode, iplot
init_notebook_mode(connected=True)
import plotly.graph_objs as go

data = [go.Scatter(
    x=[1, 2, 3],
    y=[3, 2, 1])
]
iplot(data)
Run Code Online (Sandbox Code Playgroud)

dse*_*sto 8

您需要指定适当的默认渲染器(或多个渲染器,如果您想在笔记本中可视化它以及使用File-->Download as-->PDF via Latex (.pdf)您提到的选项导出到 PDF 时)。

我自己也为此苦苦挣扎了几个小时,但最终对我有用的设置如下:

import plotly.io as pio
pio.renderers.default = "notebook+pdf"  # Renderer for Notebook and HTML exports + Renderer for PDF exports
# init_notebook_mode(connected=True)  # Do not include this line because it may not work
Run Code Online (Sandbox Code Playgroud)

请注意,您可以使用符号连接任意数量的渲染器+,Plotly 会神奇地知道何时使用它们。


Nar*_*ali 2

我认为因为绘图是 svg 对象并由 javascript 生成,所以我没有在我的 jupyter 笔记本中导出到 PDF,所以我无法检查和确认我的答案。

Plotly Offline 没有显示为图像,你可以使用 Plotly Online 来做到这一点,它可以免费生成图表,

您需要创建一个在线帐户,还需要粘贴来自plotly网站的用户名和API密钥(API密钥可以在设置中找到)。

注意:请检查情节是否公开或私人共享,我对您的情节公开不承担任何责任。

无论如何,这将为您提供图表的图像输出,您可以将其导出为 PDF

代码:

import plotly
import plotly.graph_objs as go

plotly.plotly.sign_in('<<username goes here>>', '<<api key goes here>>')
trace = go.Bar(x=[2, 4, 6], y= [10, 12, 15])
data = [trace]
layout = go.Layout(title='A Simple Plot', width=800, height=640)
fig = go.Figure(data=data, layout=layout)

plotly.plotly.image.save_as(fig, filename='a-simple-plot.png')

from IPython.display import Image
Image('a-simple-plot.png')
Run Code Online (Sandbox Code Playgroud)