Como salvar gráficos como arquivo PDF em Matplotlib

  1. savefig() Método para salvar plotagens como arquivo PDF
  2. savefig() Método da classe PdfPages

Os gráficos gerados a partir do Matplotlib podem ser simplesmente salvos como um arquivo PDF utilizando a extensão .pdf do nome do arquivo no método savefig(). Para salvar vários gráficos em um único arquivo PDF, utilizamos a classe PdfPages.

savefig() Método para salvar plotagens como arquivo PDF

Podemos simplesmente salvar uma trama como um arquivo de imagem em Matplotlib utilizando o método savefig().

Sintaxe para o 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)

O fname na seção de parâmetros representa o nome e o caminho do arquivo em relação ao diretório de trabalho. Se utilizarmos .pdf como extensão do nome do arquivo, a trama será salva como um arquivo 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")

Isto salva o gráfico gerado com o nome de arquivo Save Plot as PDF file using savefig.pdf no diretório de trabalho atual.

savefig() Método da classe PdfPages

Se desejarmos plotar vários lotes em um único, podemos utilizar o método savefig() da classe 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()

Isto salva 4 figuras geradas em Matplotlib em um único arquivo PDF com o nome do arquivo como Save multiple plots as PDF.pdf no diretório de trabalho atual.

Aqui, retornamos figuras para cada gráfico e então salvamos todas as figuras em um único arquivo PDF, passando figuras individuais no método savefig() da classe PdfPages.