2016-01-12 13 views
6

Ho un dataframe Pandas e provo a salvare un grafico in un file png. Tuttavia, sembra che qualcosa non funzioni come dovrebbe. Questo è il mio codice:Come salvare una trama in Seaborn con Python

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

sns.set(style='ticks') 

df = pandas.read_csv("this_is_my_csv_file.csv") 
plot = sns.distplot(df[['my_column_to_plot']]) 
plot.savefig("myfig.png") 

E ho questo errore:

AttributeError: 'AxesSubplot' object has no attribute 'savefig' 

risposta

3

Si potrebbe utilizzare plt.savefig perché la vostra immagine verrà su quando chiamerai plt.show()

+0

Infatti. Questo sembra funzionare. Pensavo di averlo visto in un tutorial con il nome della variabile e non con il 'plt'. Grazie – Tasos

+0

@Tasos è possibile che abbiano creato un oggetto Figura, con 'fig = plt.Figure()'. Quindi puoi salvare la figura con 'fig.savefig()' – Mathias711

+0

@ Mathias711 Oh si. Questo ha senso. Ho usato un mix di alcuni tutorial per fare ciò che volevo e probabilmente, uno di loro aveva questo modo. – Tasos

0

Usa plt.savefig('yourTitle.png')

Se si desidera passare una variabile:

plt.savefig("yourTitleDataSet{0}.png".format(dataset)) 
10

Si può salvare qualsiasi figura di mare come questa.

Supponi Se vuoi creare un grafico di violino per mostrare la distribuzione salariale in base al genere. Potresti farlo in questo modo e lo salverà usando il metodo get_figure.

ax = sns.violinplot(x="Gender", y="Salary", hue="Degree", data=job_data) 
#Returns the :class:~matplotlib.figure.Figure instance the artist belongs to 
fig = ax.get_figure() 
fig.savefig('gender_salary.png') 
+0

Grazie per la correzione Tunaki :) –

Problemi correlati