Сохранение нескольких фигов из цикла в один PDF [дубликат]

Я нашел еще одну проблему, вызвавшую эту проблему, и уже решил ее. Я случайно сохранил свой скрипт в кодировке UTF-16. Похоже, что PHP5 не может распознать тег <?php в 16-битной кодировке по умолчанию.

5
задан Prashanth 11 December 2014 в 10:09
поделиться

4 ответа

Извините, это хромой вопрос. Мы просто не должны использовать инструкцию with.

fig = plt.figure()
ax = fig_zoom.add_subplot(111)
ax.plot(range(10), range(10), 'b')

# create a PdfPages object
pdf = PdfPages(pdffilepath)

# save plot using savefig() method of pdf object
pdf.savefig(fig)

fig1 = plt.figure()
ax = fig_zoom.add_subplot(111)
ax.plot(range(10), range(2, 12), 'r')

pdf.savefig(fig1)

# remember to close the object to ensure writing multiple plots
pdf.close()
5
ответ дан Prashanth 21 August 2018 в 01:22
поделиться
  • 1
    Не самый хромой вопрос. Мне нужно было это, чтобы понять ответ. Спасибо за сообщение! – mad5245 8 May 2015 в 14:31
  • 2
    Заменить fig_zoom на fig, правильно? – Sigur 29 June 2018 в 19:38

Я думаю, что ответ Прашанта можно обобщить немного лучше, например, включив его в цикл for и избегая создания нескольких фигур, которые могут генерировать утечки памяти .

import matplotlib.pyplot as plt
from matplotlib.backends.backend_pdf import PdfPages

# create a PdfPages object
pdf = PdfPages('out.pdf')

# define here the dimension of your figure
fig = plt.figure()

for color in ['blue', 'red']:
    plt.plot(range(10), range(10), color)

    # save the current figure
    pdf.savefig(fig)

    # destroy the current figure
    # saves memory as opposed to create a new figure
    plt.clf()

# remember to close the object to ensure writing multiple plots
pdf.close()
1
ответ дан mgalardini 21 August 2018 в 01:22
поделиться

Вы можете сделать это прямо, если ваши данные находятся в кадре данных

#
with PdfPages(r"C:\Users\ddadi\Documents\multipage_pdf1.pdf","a") as pdf:
    #insert first image
    dataframe1.plot(kind='barh'); plt.axhline(0, color='k')
    plt.title("first page")
    pdf.savefig()
    plt.close()

    #insert second image
    dataframe2.plot(kind='barh'); plt.axhline(0, color='k')
    plt.title("second page")
    pdf.savefig()
    plt.close()
0
ответ дан surya 21 August 2018 в 01:22
поделиться

Ни один из этих параметров не добавляется, если файл уже закрыт (например, файл создается в одном исполнении вашей программы и снова запускается программа). В этом случае все они перезаписывают файл.

Я думаю, что добавление в настоящее время не поддерживается. Глядя на код backend_pdf.py, я вижу:

class PdfFile(object)
...
  def __init__(self, filename):  
    ...
    fh = open(filename, 'wb')

Поэтому функция всегда записывает, никогда не добавляет.

2
ответ дан user3450049 21 August 2018 в 01:22
поделиться
Другие вопросы по тегам:

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