HOWTO · Matplotlib

Como salvar gráficos como arquivo PDF em Matplotlib

Podemos salvar gráficos como PDF usando a função savefig() e salvar vários gráficos em um único arquivo pdf, usamos a classe PdfPages.

Nesta página

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.