Salva i grafici come file di immagine senza visualizzarli in Matplotlib

Suraj Joshi 30 gennaio 2023
  1. Metodo Matplotlib savefig() per salvare l’immagine
  2. Metodo matplotlib.pyplot.imsave() per salvare l’immagine
Salva i grafici come file di immagine senza visualizzarli in Matplotlib

Possiamo semplicemente salvare i grafici generati da Matplotlib usando i metodi savefig() e imsave(). Se siamo in modalità interattiva, la trama potrebbe essere visualizzata. Per evitare la visualizzazione del grafico usiamo i metodi close() e ioff().

Metodo Matplotlib savefig() per salvare l’immagine

Possiamo salvare i grafici generati da Matplotlib usando matplotlib.pyplot.savefig(). Possiamo specificare il percorso e il formato in savefig() in cui il grafico deve essere salvato.

Sintassi:

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

Qui, fname rappresenta il nome del file relativo al percorso rispetto alla directory corrente.

Salva grafico senza visualizzare in modalità interattiva

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

Questo salva il grafico generato con il nome Plot generated using Matplotlib.png nella directory di lavoro corrente.

Possiamo anche salvare i grafici in altri formati come png, jpg, svg, pdf e molti altri. Allo stesso modo, possiamo usare diversi argomenti del metodo figsave() per personalizzare l’immagine.

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

Questo salva il grafico come Customed Plot.pdf all’interno della directory di lavoro. Qui, dpi=300 rappresenta 300 punti per pollice nell’immagine salvata e bbox_inches='tight' non rappresenta alcun riquadro di delimitazione intorno all’immagine di output.

Salva grafico senza visualizzare in modalità non interattiva

Tuttavia, se siamo in modalità interattiva, la figura viene sempre mostrata. Per evitare ciò, chiudiamo con forza la finestra della figura per impedire la visualizzazione del grafico utilizzando i metodi close() e ioff(). La modalità interattiva è attivata grazie al metodo ion().

Evita la visualizzazione con il metodo close()

matplotlib.pyplot.close può essere utilizzato per chiudere la finestra della 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")

Evita la visualizzazione con il metodo ioff()

Possiamo disattivare la modalità interattiva usando i metodi matplotlib.pyplot.ioff(). Ciò impedisce la visualizzazione della cifra.

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

Metodo matplotlib.pyplot.imsave() per salvare l’immagine

Possiamo usare matplotlib.pyplot.imsave() per salvare gli array come file immagine in Matplotlib.

import numpy as np
import matplotlib.pyplot as plt

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

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

LinkedIn