Wie man Plots als Bilddatei speichert, ohne sie in Matplotlib anzuzeigen
-
Matplotlib
savefig()
Methode zum Speichern des Bildes -
matplotlib.pyplot.imsave()
Methode zur Bildspeicherung
Wir können von Matplotlib generierte Plots einfach mit den Methoden savefig()
und imsave()
speichern. Wenn wir uns im interaktiven Modus befinden, wird der Plot möglicherweise angezeigt. Um die Anzeige des Plots zu vermeiden, verwenden wir die Methoden close()
und ioff()
.
Matplotlib savefig()
Methode zum Speichern des Bildes
Wir können von Matplotlib generierte Plots mit matplotlib.pyplot.savefig() speichern. Wir können den Pfad und das Format in savefig()
angeben, in dem der Plot gespeichert werden soll.
Die Syntax:
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,
)
Hier steht fname
für den Dateinamen relativ zum Pfad in Bezug auf das aktuelle Verzeichnis.
Plot speichern ohne Anzeige im interaktiven Modus
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")
Dadurch wird der generierte Plot unter dem Namen Plot generated using Matplotlib.png
im aktuellen Arbeitsverzeichnis gespeichert.
Wir können Plotts auch in anderen Formaten wie png
, jpg
, svg
, pdf
und vielen anderen speichern. In ähnlicher Weise können wir verschiedene Argumente der figsave()
Methode verwenden, um das Bild anzupassen.
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")
Dies speichert den Plot als Customed Plot.pdf
innerhalb des Arbeitsverzeichnisses. Hier repräsentiert dpi=300
300 dots per inch im gespeicherten Bild, und bbox_inches='tight'
repräsentiert keinen Begrenzungsrahmen um das Ausgabebild.
Plot speichern ohne Anzeige im nicht-interaktiven Modus
Wenn wir uns jedoch im interaktiven Modus befinden, wird die Abbildung immer angezeigt. Um dies zu vermeiden, schließen wir das Abbildungsfenster gewaltsam, um die Anzeige des Plots mit den Methoden close()
und ioff()
zu verhindern. Der interaktive Modus wird wegen der ion()
Methode eingeschaltet.
Anzeige mit close()
Methode vermeiden
matplotlib.pyplot.close
kann zum Schließen des Abbildungsfensters verwendet werden.
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")
Anzeige mit der Methode ioff()
vermeiden
Wir können den interaktiven Modus mit den Methoden matplotlib.pyplot.ioff()
ausschalten. Dadurch wird verhindert, dass die Abbildung angezeigt wird.
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")
matplotlib.pyplot.imsave()
Methode zur Bildspeicherung
Wir können matplotlib.pyplot.imsave()
verwenden, um Arrays als Bilddateien in der Matplotlib zu speichern.
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