Python: построение нескольких графиков в цикле в один Pdf [дубликат]

Передавать аргументы вашему скрипту python при запуске скрипта через командную строку

python create_thumbnail.py test1.jpg test2.jpg

здесь, имя скрипта - create_thumbnail.py, аргумент 1 - test1.jpg, аргумент 2 - test2.jpg

С помощью сценария create_thumbnail.py я использую

   sys.argv [1:]  

, которые дают мне список аргументов, переданных в командной строке как ['test1.jpg', 'test2.jpg']

16
задан tacaswell 22 July 2013 в 14:37
поделиться

2 ответа

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

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

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()
29
ответ дан J0e3gan 15 August 2018 в 21:56
поделиться
  • 1
    Спасибо, что он работал отлично. – Ahmed Niri 22 July 2013 в 14:48
  • 2
    Я тоже работал для меня, но мне пришлось использовать xrange(1, figure.number) как Figure object is not callable – FriskyGrub 25 November 2014 в 01:53
  • 3
    Мне пришлось использовать pyplot.gcf (). Number, который я рекомендую вам использовать, поскольку он более широко применим. – jimh 13 November 2017 в 02:48
  • 4
    Кроме того, одна вещь, которую я забыл порекомендовать, - это перейти к pyplot.gcf (). Number + 1 – jimh 13 November 2017 в 05:37
  • 5
    @jimh Хороший совет, спасибо! Использование plt.gcf().number + 1import matplotlib.pyplot as plt, конечно) вместо figure().number выполнило эту работу. (Я на Python 3.5.) – erekalper 16 January 2018 в 18:14

Вы хотите сохранить несколько фигур в один файл или сохранить несколько фигур с помощью одного скрипта ?

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

>>> 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 [/g4]

enter image description here [/g5]

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

>>> 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')

Вышеприведенный скрипт создает этот единственный файл «.png»: enter image description here [/G6]

17
ответ дан Brett Morris 15 August 2018 в 21:56
поделиться
  • 1
    Я думаю, что это должен быть принятый ответ, потому что он действительно делает то, о чем просил OP, не объединяя два pdf-файла, используя внешнюю библиотеку. – Dilawar 16 January 2014 в 10:27
Другие вопросы по тегам:

Похожие вопросы: