Salva figure identiche a quelle visualizzate in Matplotlib

Suraj Joshi 15 febbraio 2024
Salva figure identiche a quelle visualizzate in Matplotlib

Salvando la figura usando matplotlib.pyplot.savefig(), abbiamo un parametro chiamato dpi, che specifica la dimensione relativa del testo e la larghezza del tratto sulle linee. Per impostazione predefinita, il valore di dpi per matplotlib.pyplot.show() è 80, mentre il valore predefinito di dpi per matplotlib.pyplot.savefig() è 100.
Per assicurarci che le cifre siano identiche per i metodi show() e savefig(), dobbiamo usare dpi=fig.dpi nel metodo savefig(). Possiamo anche impostare il parametro figsize nel metodo matplotlib.pyplot.figure() per regolare le dimensioni assolute del grafico in modo che entrambe le figure siano identiche.

Imposta dpi=fig.dpi nel metodo savefig() per salvare le figure identiche alle figure visualizzate in Matplotlib

import matplotlib.pyplot as plt

x = [1, 3, 4, 5, 8]
y = [3, 1, 5, 4, 9]

fig = plt.figure()
plt.plot(x, y)
plt.xlabel("X")
plt.ylabel("Y")
plt.title("X vs Y")
fig.savefig("plot.png", dpi=fig.dpi)
plt.show()

Produzione:

Figure visualizzate salva le figure identiche alle figure visualizzate Matplotlib

Figura salvata:

Figura salvata salva le figure identiche alle figure visualizzate Matplotlib

Questo processo salva la figura come plot.png, che è identico a quello visualizzato.

A volte, possiamo ottenere grandi bordi sulle figure create. Per risolvere questo valore, possiamo utilizzare il metodo matplotlib.pyplot.tight_layout() o impostare bbox_inches='tight' nel metodo savefig().

import matplotlib.pyplot as plt

x = [1, 3, 4, 5, 8]
y = [3, 1, 5, 4, 9]

fig = plt.figure()
plt.plot(x, y)
plt.xlabel("X")
plt.ylabel("Y")
plt.title("X vs Y")
fig.savefig("plot.png", dpi=fig.dpi, bbox_inches="tight")
plt.show()

Produzione:

Figure visualizzate salva le figure identiche alle figure visualizzate Matplotlib

Figura salvata:

Figura salvata salva le figure identiche alle figure visualizzate Matplotlib

Autore: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Articolo correlato - Matplotlib Images