jupyter notebook 中的图表转为 pdf

Graphs in a jupyter notebook to pdf

我有一个 jupyter notebook 运行 python 我想将我构建的所有图表输出到一个 pdf 文件。有人知道怎么做吗?

亲切的问候,

如果您使用 windows,您可以使用 excel 和 openpyxl 来执行此操作,然后打印 excel(手动或通过 python 作为后台进程) 到 PDF。

如果您使用的是 matplotlib,请在使用 plt.save() 创建图像时保存图像。

要在 excel 工作簿中插入图像:

from openpyxl.drawing.image import Image as XLIMG
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
img = XLIMG('example_image.jpg')
# Note that A1 is the cell, you can specify exactly where you want the images.
ws.add_image(img, 'A1')
wb.save('workbook_test')

我经常做的是制作一种带有标题和信息的 excel 模板,然后将我的数据或图像加载到该模板中,然后使用 python 打印为 PDF 并上传到服务器。很酷的是,如果您需要更改报告,通常不需要编写任何代码,只需编辑 excel 模板即可。

要在后台将 excel 工作簿打印为 PDF:Print chosen worksheets in excel files to pdf in python

我找不到直接将所有图表转换为 pdf 格式的方法,但我要说的是这种方法非常有效并且经过测试。 首先,你需要导入matplotlib。

import matplotlib.pyplot as plt

现在在jupyter notebook 的所有块中写入这段代码,这些块正在绘制一些图表。所有块的图像名称应该不同,您可以另存为 plt1.png , plt2.png

plt.save('imagename.png')

请注意所有块的图像名称应该不同。

别担心你不会留下情节图像。现在运行这段代码在笔记本的最后。

from PIL import Image
import glob
import os
images = glob.glob("*.png")
print(images)
imlist = []
for img in images:
    im = Image.open(img)
    im = im.convert('RGB')
    imlist.append(im)
imlist[0].save('plots.pdf',save_all=True, append_images=imlist[1:])
map(os.remove(img),[img for img in images])

这里基本上是什么,您正在一张一张地保存所有地块的图像,然后此代码会将所有这些图像转换为 pdf,并且 os.remove 将删除所有拍摄的图像。 注意:你不应该在同一文件夹中有其他 png 文件,否则这些文件也将包含在 pdf 中并被删除。