Comment enregistrer des tracés sous forme de fichier image sans les afficher dans Matplotlib

Suraj Joshi 30 janvier 2023
  1. Matplotlib savefig() méthode pour enregistrer l’image
  2. Méthode matplotlib.pyplot.imsave() pour enregistrer l’image
Comment enregistrer des tracés sous forme de fichier image sans les afficher dans Matplotlib

Nous pouvons simplement enregistrer les tracés générés à partir de Matplotlib en utilisant les méthodes savefig() et imsave(). Si nous sommes en mode interactif, l’intrigue peut s’afficher. Pour éviter l’affichage du tracé, nous utilisons les méthodes close() et ioff().

Matplotlib savefig() méthode pour enregistrer l’image

Nous pouvons enregistrer les tracés générés à partir de Matplotlib en utilisant matplotlib.pyplot.savefig(). Nous pouvons spécifier le chemin et le format dans savefig() dans lequel le tracé doit être enregistré.

Syntaxe:

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,
)

Ici, fname représente le nom de fichier par rapport au chemin par rapport au répertoire courant.

Enregistrer le tracé sans afficher en mode interactif

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 5, 100)
y = np.sin(x)
plt.plot(x, y)
plt.title("Plot generated using Matplotlib")
plt.xlabel("x")
plt.ylabel("sinx")
plt.savefig("Plot generated using Matplotlib.png")

Cela enregistre le tracé généré sous le nom de Plot generated using Matplotlib.png dans le répertoire de travail actuel.

Nous pouvons également enregistrer des tracés dans d’autres formats tels que png, jpg, svg, pdf et bien d’autres. De même, nous pouvons utiliser différents arguments de la méthode figsave() pour personnaliser l’image.

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 5, 100)
y = np.sin(x)
plt.plot(x, y)
plt.title("Plot generated using Matplotlib")
plt.xlabel("x")
plt.ylabel("sinx")
plt.savefig("Customed Plot.pdf", dpi=300, bbox_inches="tight")

Cela enregistre le tracé en tant que Customed Plot.pdf dans le répertoire de travail. Ici, dpi=300 représente 300 points par pouce dans l’image enregistrée, et bbox_inches='tight' ne représente aucun cadre de délimitation autour de l’image de sortie.

Enregistrer le tracé sans afficher en mode non interactif

Cependant, si nous sommes en mode interactif, la figure est toujours affichée. Pour éviter cela, nous fermons de force la fenêtre de la figure pour empêcher l’affichage du tracé en utilisant les méthodes close() et ioff(). Le mode interactif est activé en raison de la méthode ion().

Évitez l’affichage avec la méthode close()

matplotlib.pyplot.close peut être utilisé pour fermer la fenêtre de la figure.

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 5, 100)
y = np.sin(x)
fig = plt.figure()
plt.ion()
plt.plot(x, y)
plt.title("Plot generated using Matplotlib")
plt.xlabel("x")
plt.ylabel("sinx")
plt.close(fig)
plt.savefig("Plot generated using Matplotlib.png")

Évitez l’affichage avec la méthode ioff()

Nous pouvons désactiver le mode interactif en utilisant les méthodes matplotlib.pyplot.ioff(). Cela empêche l’affichage de la figure.

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 5, 100)
y = np.sin(x)
fig = plt.figure()
plt.ion()
plt.plot(x, y)
plt.title("Plot generated using Matplotlib")
plt.xlabel("x")
plt.ylabel("sinx")
plt.ioff()
plt.savefig("Plot generated using Matplotlib.png")

Méthode matplotlib.pyplot.imsave() pour enregistrer l’image

Nous pouvons utiliser matplotlib.pyplot.imsave() pour enregistrer des tableaux en tant que fichiers image dans Matplotlib.

import numpy as np
import matplotlib.pyplot as plt

image = np.random.randn(100, 100)
plt.imsave("new_1.png", image)
Auteur: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn