Comment enregistrer des tracés sous forme de fichier image sans les afficher dans Matplotlib
-
Matplotlib
savefig()
méthode pour enregistrer l’image -
Méthode
matplotlib.pyplot.imsave()
pour enregistrer l’image
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)
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn