Crear un PDF multipágina con Matplotlib

Beginner

This tutorial is from open-source community. Access the source code

Introducción

En este laboratorio, aprenderá a crear un archivo PDF multipágina con Python Matplotlib. El archivo PDF contendrá varias páginas con diferentes gráficos y metadatos. También aprenderá a adjuntar anotaciones al archivo PDF.

Consejos sobre la VM

Una vez finalizada la inicialización de la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de operaciones no puede automatizarse debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje sus comentarios después de la sesión y lo resolveremos rápidamente para usted.

Importar bibliotecas

En primer lugar, debe importar las bibliotecas necesarias para crear el archivo PDF. En este laboratorio, usaremos las bibliotecas Matplotlib y datetime.

import datetime
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.backends.backend_pdf import PdfPages

Crear el objeto PdfPages

A continuación, debe crear un objeto PdfPages al que guardará las páginas del archivo PDF. Puede usar la instrucción 'with' para asegurarse de que el objeto PdfPages se cierre correctamente al final del bloque, incluso si se produce una excepción.

with PdfPages('multipage_pdf.pdf') as pdf:

Crear la primera página

En este paso, creará la primera página del archivo PDF. La página contendrá un gráfico de una gráfica simple.

plt.figure(figsize=(3, 3))
plt.plot(range(7), [3, 1, 4, 1, 5, 9, 2], 'r-o')
plt.title('Page One')
pdf.savefig()
plt.close()

Crear la segunda página

En este paso, creará la segunda página del archivo PDF. La página contendrá un gráfico de una onda sinusoidal.

plt.rcParams['text.usetex'] = True
plt.figure(figsize=(8, 6))
x = np.arange(0, 5, 0.1)
plt.plot(x, np.sin(x), 'b-')
plt.title('Page Two')
pdf.attach_note("plot of sin(x)")  ## adjuntar metadatos (como nota de pdf) a la página
pdf.savefig()
plt.close()

Crear la tercera página

En este paso, creará la tercera página del archivo PDF. La página contendrá un gráfico de una parábola.

plt.rcParams['text.usetex'] = False
fig = plt.figure(figsize=(4, 5))
plt.plot(x, x ** 2, 'ko')
plt.title('Page Three')
pdf.savefig(fig)  ## o puede pasar un objeto Figure a pdf.savefig
plt.close()

Establecer los metadatos del archivo PDF

En este paso, establecerá los metadatos del archivo PDF. Puede establecer el título, el autor, el asunto, las palabras clave y la fecha de creación/modificación del archivo PDF.

d = pdf.infodict()
d['Title'] = 'Multipage PDF Example'
d['Author'] = 'Jouni K. Sepp\xe4nen'
d['Subject'] = 'How to create a multipage pdf file and set its metadata'
d['Keywords'] = 'PdfPages multipage keywords author title subject'
d['CreationDate'] = datetime.datetime(2009, 11, 13)
d['ModDate'] = datetime.datetime.today()

Resumen

En este laboratorio, aprendiste cómo crear un archivo PDF multipágina con Matplotlib de Python. También aprendiste cómo adjuntar metadatos y anotaciones al archivo PDF. Puedes utilizar estas técnicas para crear informes profesionales con múltiples gráficos y anotaciones.