Cómo guardar gráficos como archivo PDF en Matplotlib

  1. Método savefig() para guardar gráficos como archivo PDF
  2. Método savefig() de la clase PdfPages

Los gráficos generados a partir de Matplotlib pueden guardarse simplemente como un archivo PDF utilizando la extensión .pdf del nombre del archivo en el método savefig(). Para guardar varias gráficos en un solo archivo PDF, utilizamos la clase PdfPages.

Método savefig() para guardar gráficos como archivo PDF

Simplemente podemos guardar un gráfico como un archivo de imagen en Matplotlib usando el método savefig().

Sintaxis para el método savefig():

matplotlib.pyplot.savefig(fname, 
        dpi=None, 
        facecolor='w', 
        edgecolor='w',
        orientation='portrait', 
        papertype=None, 
        format=None,
        transparent=False, 
        bbox_inches=None, 
        pad_inches=0.1,
        frameon=None, 
        metadata=None)

El fname en la sección de parámetros representa el nombre y la ruta del archivo en relación con el directorio de trabajo. Si usamos .pdf como la extensión del nombre de archivo, la trama se guarda como un archivo PDF.

import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(0,5,50)
y=np.cos(2 * np.pi * x)

plt.scatter(x,y)
plt.plot(x,y)
plt.title("Plot of cosx")
plt.xlabel("x")
plt.ylabel("cosx")
plt.show()
plt.savefig("Save Plot as PDF file using savefig.pdf")

Esto guarda el diagrama generado con el nombre de archivo Guardar diagrama como archivo PDF usando savefig.pdf en el directorio de trabajo actual.

Método savefig() de la clase PdfPages

Si deseamos trazar varias gráficos en una sola, podemos usar el método savefig() de la clase PdfPages.

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


x=np.linspace(-3,3,100)
y1=np.sin(x)
y2=np.cos(x)
y3=1/(1+np.exp(-x))
y4=np.exp(x)

def retFig(x,y):
    fig = plt.figure()
    a= plt.plot(x,y)
    return fig

fig1 = retFig(x, y1)
fig2 = retFig(x, y2)
fig3 = retFig(x, y3)
fig4 = retFig(x, y4)

pp = PdfPages('Save multiple plots as PDF.pdf')
pp.savefig(fig1)
pp.savefig(fig2)
pp.savefig(fig3)
pp.savefig(fig4)
pp.close()

Esto guarda 4 figuras generadas en Matplotlib en un solo archivo PDF con el nombre del archivo como Guardar múltiples gráficos como PDF.pdf en el directorio de trabajo actual.

Aquí, devolvemos figuras para cada gráfico y luego guardamos todas las figuras en un solo archivo PDF pasando figuras individuales en el método savefig() de la clase PdfPages.