如何在 Python 中将图形列表转换为长 png

How to convert list of figures to long png in Python

我有一个 matplotlib 图形列表,我想知道是否有任何方法可以将它们连接成一个长 png 文件。我尝试过使用 MagickWand 进行试验,但似乎没有办法将数字输入为 canvas.Image.

我也曾尝试使用 reportlab 创建 pdf,然后尝试使用 wand 进行解释,但每次我尝试在控制台中打开 wand.image.Image(filename=pdf_file_name) 时,它都会打印 None 到输出。

有没有我忽略的地方,and/or有没有更好的方法来做到这一点。最好是 PNG 文件。

提前致谢!

假设所有图形都包含在一个 PDF 中,您可以使用 遍历每个页面并将它们附加到单个 PNG 图像。可以根据需要为多个图形修改此技术。

from wand.image import Image

pdf_file='/path/to/figures.pdf'

# Read figures
with Image(filename=pdf_file) as figures:
  # Create blank image with the dimensions of all pages/figures
  with Image(width= figures.width,
             height=figures.height*len(figures.sequence)) as canvas:
    top=0                            # Position offset
    for page in figures.sequence:    # Iterate over each page in figures
      canvas.composite(page, 0, top) # Composite page on to canvas
      top += page.height             # Adjust offset
   canvas.save(filename="out.png")   # Write out long png