Salva i grafici come file PDF in Matplotlib

Suraj Joshi 18 luglio 2021
  1. Metodo savefig() per salvare i grafici come file PDF
  2. Metodo savefig() della classe PdfPages
Salva i grafici come file PDF in Matplotlib

I grafici generati da Matplotlib possono essere semplicemente salvati come file PDF utilizzando l’estensione .pdf del nome del file nel metodo savefig(). Per salvare più grafici in un unico file PDF, usiamo la classe PdfPages.

Metodo savefig() per salvare i grafici come file PDF

Possiamo semplicemente salvare un grafico come file immagine in Matplotlib usando il metodo savefig().

Sintassi per il metodo 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,
)

Il fname nella sezione dei parametri rappresenta il nome e il percorso del file relativo alla directory di lavoro. Se usiamo .pdf come estensione del nome del file, il grafico viene salvato come file 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")

Questo salva il grafico generato con il nome del file Save Plot as PDF file using savefig.pdf nella directory di lavoro corrente.

Metodo savefig() della classe PdfPages

Se desideriamo tracciare più grafici in un unico, possiamo usare il metodo savefig() della 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()

Questo salva 4 figure generate in Matplotlib in un singolo file PDF con il nome del file come Save multiple plots as PDF.pdf nella directory di lavoro corrente.

Qui, restituiamo le cifre per ogni grafico e poi le salviamo in un unico file PDF passando le singole cifre nel metodo savefig() della classe PdfPages.

Autore: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn