Добавить текст с помощью PdfPages - matplotlib
Следуя этому примеру официальной документации, я могу создать PDF-файл с графиками, которые мне нужны на разных страницах. Но я хотел бы добавить некоторый текст на страницу (не внутри графика), и я попытался безуспешно:
with PdfPages('multipage_pdf.pdf') as pdf:
fig = plt.figure(figsize=(11.69,8.27))
x = df1.index
y1 = df1[col1]
y2 = df1[col2]
plt.plot(x, y1, label=col1)
plt.plot(x, y2, label=col2)
plt.legend(loc='best')
plt.grid(True)
plt.title('Title')
txt = 'this is an example'
plt.text(1,1,txt)
pdf.savefig()
plt.close()
Как я могу показать также текст this is an example
? Можно ли создать также первую страницу только с текстом? заранее спасибо
1 ответ
Текст 'this is an example'
находится в положении (1,1)
в координатах данных. Если ваш диапазон данных отличается, это может быть вне графика. Было бы целесообразно указать это в координатах фигуры. Они варьируются от 0 до 1, где 0,0 - левый нижний угол и 1,1 - правый верхний угол. Например
plt.text(0.05,0.95,txt, transform=fig.transFigure, size=24)
Этот пример
import datetime
import numpy as np
from matplotlib.backends.backend_pdf import PdfPages
import matplotlib.pyplot as plt
with PdfPages('multipage_pdf.pdf') as pdf:
fig = plt.figure(figsize=(11.69,8.27))
plt.plot([1,2,3], [1,3,2], label="col1")
plt.plot([1,2,3], [2,1,3], label="col2")
plt.legend(loc='best')
plt.grid(True)
plt.title('Title')
txt = 'this is an example'
plt.text(0.05,0.95,txt, transform=fig.transFigure, size=24)
pdf.savefig()
plt.close()
создает этот сюжет
Вы не можете создать пустую страницу PDF. Но, конечно, вы можете имитировать один, создавая фигуру без содержания, или пустую фигуру только с текстом.
import datetime
import numpy as np
from matplotlib.backends.backend_pdf import PdfPages
import matplotlib.pyplot as plt
with PdfPages('multipage_pdf.pdf') as pdf:
firstPage = plt.figure(figsize=(11.69,8.27))
firstPage.clf()
txt = 'This is the title page'
firstPage.text(0.5,0.5,txt, transform=firstPage.transFigure, size=24, ha="center")
pdf.savefig()
plt.close()
fig = plt.figure(figsize=(11.69,8.27))
plt.plot([1,2,3], [1,3,2], label="col1")
plt.plot([1,2,3], [2,1,3], label="col2")
plt.legend(loc='best')
plt.grid(True)
plt.title('Title')
txt = 'this is an example'
plt.text(0.05,0.95,txt, transform=fig.transFigure, size=24)
pdf.savefig()
plt.close()