Salva la figura di Seaborn in Python

Manav Narula 11 luglio 2021
Salva la figura di Seaborn in Python

In questo tutorial, discuteremo come salvare una figura di Seaborn in un file esterno.

Useremo la funzione matplotlib.pyplot.savefig(), che può esportarlo in un file esterno.

Dobbiamo specificare il nome del file insieme al suo formato e il percorso del file nella funzione stessa.

Per esempio,

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {"Day 1": [7, 1, 5, 6, 3, 10, 5, 8], "Day 2": [1, 2, 8, 4, 3, 9, 5, 2]}
)

sns.lineplot(data=df)
plt.savefig("filename.png")

Possiamo specificare altri formati di file come jpeg, png e altri. Possiamo anche salvare la trama in formati non immagine come PDF.

Possiamo anche personalizzare la figura finale utilizzando diversi argomenti.

Ad esempio, possiamo specificare l’argomento dpi nella funzione. Il dpi significa punti per pollice quindi un valore più alto risulterà in una maggiore risoluzione dell’immagine finale.

Per esempio,

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {"Day 1": [7, 1, 5, 6, 3, 10, 5, 8], "Day 2": [1, 2, 8, 4, 3, 9, 5, 2]}
)

sns.lineplot(data=df)
plt.savefig("filename.png", dpi=300)

Se vogliamo, possiamo cambiare l’orientamento utilizzando il parametro orientation. L’orientamento è portrait per impostazione predefinita.

Nel codice seguente, salviamo la figura finale in orientamento orizzontale.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {"Day 1": [7, 1, 5, 6, 3, 10, 5, 8], "Day 2": [1, 2, 8, 4, 3, 9, 5, 2]}
)

sns.lineplot(data=df)
plt.savefig("filename.png", orientation="horizontal")

Altri argomenti disponibili sono transparent, frameon, facecolor, edgecolor forniscono più personalizzazioni per la figura esportata finale.

Notare che per le versioni recenti di seaborn, l’uso diretto della funzione savefig() potrebbe produrre errori su alcuni grafici. In questi casi, dovremmo usare anche la funzione get_figure(). Questa funzione ottiene l’istanza della figura richiesta e possiamo quindi esportarla utilizzando la funzione savefig().

Il codice seguente lo dimostra.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {"Day 1": [7, 1, 5, 6, 3, 10, 5, 8], "Day 2": [1, 2, 8, 4, 3, 9, 5, 2]}
)

splot = sns.lineplot(data=df)
sfig = splot.get_figure()
sfig.savefig("filename.png", orientation="landscape")
Autore: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn