Comment enregistrer des tracés sous forme de fichier PDF dans Matplotlib

Suraj Joshi 30 janvier 2023
  1. Méthode savefig() pour enregistrer les tracés sous forme de fichier PDF
  2. Méthode savefig() de la classe PdfPages
Comment enregistrer des tracés sous forme de fichier PDF dans Matplotlib

Les tracés générés à partir de Matplotlib peuvent être simplement enregistrés en tant que fichier PDF en utilisant l’extension .pdf du nom de fichier dans la méthode savefig(). Pour enregistrer plusieurs tracés dans un seul fichier PDF, nous utilisons la classe PdfPages.

Méthode savefig() pour enregistrer les tracés sous forme de fichier PDF

Nous pouvons simplement enregistrer un tracé en tant que fichier image dans Matplotlib en utilisant la méthode savefig().

Syntaxe de la méthode 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,
)

Le fname dans la section des paramètres représente le nom et le chemin du fichier par rapport au répertoire de travail. Si nous utilisons .pdf comme extension du nom de fichier, le tracé est enregistré en tant que fichier 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")

Cela enregistre le tracé généré avec le nom de fichier Save Plot as PDF file using savefig.pdf dans le répertoire de travail actuel.

Méthode savefig() de la classe PdfPages

Si nous souhaitons tracer plusieurs tracés en un seul, nous pouvons utiliser la méthode savefig() de la 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()

Cela enregistre 4 chiffres générés dans Matplotlib dans un seul fichier PDF avec le nom de fichier comme Save multiple plots as PDF.pdf dans le répertoire de travail actuel.

Ici, nous renvoyons des chiffres pour chaque tracé, puis enregistrons tous les chiffres dans un seul fichier PDF en passant des chiffres individuels dans la méthode savefig() de la classe PdfPages.

Auteur: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn