Cómo guardar gráficos como un archivo de imagen sin mostrar en Matplotlib
-
Matplotlib
savefig()
método para guardar la imagen -
Método
matplotlib.pyplot.imsave()
para guardar la imagen
Simplemente podemos guardar gráficos generados a partir de Matplotlib usando los métodos savefig()
e imsave()
. Si estamos en modo interactivo, la trama podría mostrarse. Para evitar la visualización de la trama, utilizamos los métodos close()
e ioff()
.
Matplotlib savefig()
método para guardar la imagen
Podemos guardar gráficos generados a partir de Matplotlib usando matplotlib.pyplot.savefig(). Podemos especificar la ruta y el formato en savefig()
en el que se debe guardar el diagrama.
Sintaxis:
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,
)
Aquí, fname
representa el nombre de archivo relativo a la ruta con respecto al directorio actual.
Guardar la trama sin mostrar en modo interactivo
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")
Esto guarda el diagrama generado con el nombre como Plot generated using Matplotlib.png
en el directorio de trabajo actual.
También podemos guardar gráficos en otros formatos como png
, jpg
, svg
, pdf
y muchos más. Del mismo modo, podemos usar diferentes argumentos del método figsave()
para personalizar la imagen.
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")
Esto guarda la trama como Customed Plot.pdf
dentro del directorio de trabajo. Aquí, ppp = 300
representa 300 puntos por pulgada en la imagen guardada, y bbox_inches='tight'
representa ningún cuadro delimitador alrededor de la imagen de salida.
Guardar la trama sin mostrar en modo no interactivo
Sin embargo, si estamos en modo interactivo, la figura siempre se muestra. Para evitar esto, cerramos con fuerza la ventana de la figura para evitar que se muestre el gráfico utilizando los métodos close()
e ioff()
El modo interactivo se activa debido al método ion()
.
Evite mostrar con el método close()
matplotlib.pyplot.close
se puede usar para cerrar la ventana de la figura.
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")
Evite mostrar con el método ioff()
Podemos desactivar el modo interactivo utilizando los métodos matplotlib.pyplot.ioff()
. Esto evita que se muestre la figura.
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étodo matplotlib.pyplot.imsave()
para guardar la imagen
Podemos usar matplotlib.pyplot.imsave()
para guardar matrices como archivos de imagen en 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