tutorial examples barplot python pandas matplotlib seaborn

python - examples - Cómo guardar una trama de Seaborn en un archivo



seaborn python install (9)

Algunas de las soluciones anteriores no funcionaron para mí. El atributo .fig no se encontró cuando lo intenté y no .savefig() usar .savefig() directamente. Sin embargo, lo que funcionó fue:

sns_plot.figure.savefig("output.png")

Soy un nuevo usuario de Python, por lo que no sé si esto se debe a una actualización. Quería mencionarlo en caso de que alguien más se encuentre con los mismos problemas que yo.

Intenté el siguiente código ( test_seaborn.py ):

import matplotlib matplotlib.use(''Agg'') import matplotlib.pyplot as plt matplotlib.style.use(''ggplot'') import seaborn as sns sns.set() df = sns.load_dataset(''iris'') sns_plot = sns.pairplot(df, hue=''species'', size=2.5) fig = sns_plot.get_figure() fig.savefig("output.png") #sns.plt.show()

Pero me sale este error:

Traceback (most recent call last): File "test_searborn.py", line 11, in <module> fig = sns_plot.get_figure() AttributeError: ''PairGrid'' object has no attribute ''get_figure''

Espero que el output.png final exista y se vea así:

¿Cómo puedo resolver el problema?


Debería poder utilizar el método sns_plot de sns_plot directamente.

sns_plot.savefig("output.png")

Para mayor claridad con su código, si desea acceder a la figura sns_plot en la que reside sns_plot , puede obtenerla directamente con

fig = sns_plot.fig

En este caso, no hay get_figure método get_figure como asume su código.


Elimine get_figure y simplemente use sns_plot.savefig(''output.png'')

df = sns.load_dataset(''iris'') sns_plot = sns.pairplot(df, hue=''species'', size=2.5) sns_plot.savefig("output.png")


Esto funciona para mi

import seaborn as sns import matplotlib.pyplot as plt %matplotlib inline sns.factorplot(x=''holiday'',data=data,kind=''count'',size=5,aspect=1) plt.savefig(''holiday-vs-count.png'')


Las soluciones sugeridas son incompatibles con Seaborn 0.8.1

dando los siguientes errores porque la interfaz Seaborn ha cambiado:

AttributeError: ''AxesSubplot'' object has no attribute ''fig'' When trying to access the figure AttributeError: ''AxesSubplot'' object has no attribute ''savefig'' when trying to use the savefig directly as a function

Las siguientes llamadas le permiten acceder a la figura (compatible con Seaborn 0.8.1):

swarm_plot = sns.swarmplot(...) fig = swarm_plot.get_figure() fig.savefig(...)

como se vio anteriormente en esta respuesta .

ACTUALIZACIÓN: Recientemente he usado el objeto PairGrid de seaborn para generar un diagrama similar al de este ejemplo . En este caso, dado que GridPlot no es un objeto de trazado como, por ejemplo, sns.swarmplot, no tiene la función get_figure (). Es posible acceder directamente a la figura matplotlib por

fig = myGridPlotObject.fig

Como se sugirió anteriormente en otras publicaciones de este hilo.


Solo para su información, el siguiente comando funcionó en seaborn 0.8.1, así que supongo que la respuesta inicial sigue siendo válida.

sns_plot = sns.pairplot(data, hue=''species'', size=3) sns_plot.savefig("output.png")


También es posible crear un objeto de figure matplotlib y luego usar plt.savefig(...) :

from matplotlib import pyplot as plt import seaborn as sns import pandas as pd df = sns.load_dataset(''iris'') plt.figure() # Push new figure on stack sns_plot = sns.pairplot(df, hue=''species'', size=2.5) plt.savefig("output.png") # Save that figure


Uso distplot y get_figure para guardar la imagen con éxito.

sns_hist = sns.distplot(df_train[''SalePrice'']) fig = sns_hist.get_figure() fig.savefig(''hist.png'')


sns.figure.savefig("output.png") un error al usar sns.figure.savefig("output.png") en seaborn 0.8.1.

En su lugar use:

import seaborn as sns df = sns.load_dataset(''iris'') sns_plot = sns.pairplot(df, hue=''species'', size=2.5) sns_plot.savefig("output.png")