Я нашел еще одну проблему, вызвавшую эту проблему, и уже решил ее. Я случайно сохранил свой скрипт в кодировке UTF-16
. Похоже, что PHP5 не может распознать тег <?php
в 16-битной кодировке по умолчанию.
Извините, это хромой вопрос. Мы просто не должны использовать инструкцию 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()
Я думаю, что ответ Прашанта можно обобщить немного лучше, например, включив его в цикл 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()
Вы можете сделать это прямо, если ваши данные находятся в кадре данных
#
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()
Ни один из этих параметров не добавляется, если файл уже закрыт (например, файл создается в одном исполнении вашей программы и снова запускается программа). В этом случае все они перезаписывают файл.
Я думаю, что добавление в настоящее время не поддерживается. Глядя на код backend_pdf.py
, я вижу:
class PdfFile(object)
...
def __init__(self, filename):
...
fh = open(filename, 'wb')
Поэтому функция всегда записывает, никогда не добавляет.
fig_zoom
наfig
, правильно? – Sigur 29 June 2018 в 19:38