Python сохраняет несколько фигур в один PDF файл

В python (для одной фигуры, созданной в графическом интерфейсе) мне удалось сохранить фигуру под .jpg, а также .pdf, либо используя:

plt.savefig(filename1 +  '.pdf')

или

plt.savefig(filename1 +  '.jpg')

Используя один файл, я хотел бы сохранить несколько цифр в .pdf или .jpg(как и в математической лаборатории). Кто-нибудь может помочь с этим?

Ответ 1

Используйте PdfPages, чтобы решить вашу проблему. Передайте ваш объект figure методу savefig.

Например, если у вас есть целая куча объектов figure и вы хотите сохранить их в многостраничном PDF файле, вы можете сделать следующее:

import matplotlib.backends.backend_pdf
pdf = matplotlib.backends.backend_pdf.PdfPages("output.pdf")
for fig in xrange(1, figure().number): ## will open an empty extra figure :(
    pdf.savefig( fig )
pdf.close()

Ответ 2

Вы хотите сохранить несколько фигур в один файл или сохранить несколько цифр, используя один script?

Здесь вы можете сохранить две разные цифры, используя один script.

>>> from matplotlib import pyplot as plt
>>> fig1 = plt.figure()
>>> plt.plot(range(10))
[<matplotlib.lines.Line2D object at 0x10261bd90>]
>>> fig2 = plt.figure()
>>> plt.plot(range(10,20))
[<matplotlib.lines.Line2D object at 0x10263b890>]
>>> fig1.savefig('fig1.png')
>>> fig2.savefig('fig2.png')

... который производит эти два графика в свои собственные .png файлы: enter image description here

enter image description here

Чтобы сохранить их в том же файле, используйте подзаголовки:

>>> from matplotlib import pyplot as plt
>>> fig = plt.figure()
>>> axis1 = fig.add_subplot(211)
>>> axis1.plot(range(10))
>>> axis2 = fig.add_subplot(212)
>>> axis2.plot(range(10,20))
>>> fig.savefig('multipleplots.png')

Вышеупомянутый script создает этот единственный файл .png: enter image description here