我喜欢使用 matplotlib 创建 PDF,然后我会经常使用 Adobe Illustrator 或 Inkscape 进行调整。不幸的是,当 matplotlib 将图形保存为 PDF 时,它会将多个图像组合成一个对象。
例如下面的代码
import matplotlib.pyplot as plt
import numpy as np
im = np.random.rand(10, 10) * 255.0
fig = plt.figure()
ax = fig.add_axes([0.1,0.1,0.8,0.8])
ax.imshow(im, extent = [0,10,0,10])
ax.imshow(im, extent = [12,22,0,10])
ax.set_xlim(-2,24)
fig.savefig('images_get_combined.pdf')
创建以下 PDF(在我手动转换为 PNG 后,我可以将其发布在这里)
当我在 Adobe Illustrator 中打开 images_get_combined.pdf
时,两个图像合并为一个图像。我无法将一张图片相对于另一张图片移动。
我尝试使用 BboxImage
解决这个问题,但如本 bug report 所示, BboxImage
与 PDF 后端不兼容。也许带有 BboxImage
错误的 PDF 后端会得到解决,但我想知道是否有另一种方法可以使 PDF 后端单独保存每个图像。
最佳答案
您可以尝试另存为多页PDF:
import numpy as np
from matplotlib.backends.backend_pdf import PdfPages
import matplotlib.pyplot as plt
im = np.random.rand(10, 10) * 255.0
with PdfPages('images_get_combined.pdf') as pdf:
fig = plt.figure()
ax = fig.add_axes([0.1,0.1,0.8,0.8])
ax.imshow(im, extent = [0,10,0,10])
pdf.savefig()
plt.close()
fig = plt.figure()
ax = fig.add_axes([0.1,0.1,0.8,0.8])
ax.imshow(im, extent = [12,22,0,10])
pdf.savefig()
plt.close()
另见 Multipage PDF来自 matplotlib 文档的示例。
关于python - matplotlib:创建不合并图像对象的 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27473107/