Como salvar gráficos como arquivo PDF em Matplotlib

Suraj Joshi 30 janeiro 2023
  1. savefig() Método para salvar plotagens como arquivo PDF
  2. savefig() Método da classe PdfPages
Como salvar gráficos como arquivo PDF em Matplotlib

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.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn