Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Error sns.displot

ax = sns.displot(datos.Edad,
hist_kws = {'cumulative': True},
kde_kws = {'cumulative': True},
bins = 10)
ax.figure.set_size_inches(12,4)
ax.set_titles('Distribucion de frecuencia acumulada', fontsize= 18)
ax.set_xlabels('Acumulado', fontsize=14)
ax.set_ylabels('Años', fontsize=14)
ax

Me muestra el siguiente error:

AttributeError Traceback (most recent call last)
/tmp/ipython-input-58-1923482267.py in <cell line: 0>()
----> 1 ax = sns.displot(datos.Edad,
2 hist_kws = {'cumulative': True},
3 kde_kws = {'cumulative': True},
4 bins = 10)
5 ax.figure.set_size_inches(12,4)

5 frames
/usr/local/lib/python3.11/dist-packages/matplotlib/artist.py in update_props(self, props, errfmt)
1204 func = getattr(self, f"set
{k}", None)
1205 if not callable(func):
-> 1206 raise AttributeError(
1207 errfmt.format(cls=type(self), prop_name=k),
1208 name=k)

AttributeError: Rectangle.set() got an unexpected keyword argument 'hist_kws'

1 respuesta

Hola Jennifer, espero que estés bien

Parece que estás enfrentando un problema con el uso de sns.displot de la librería Seaborn. El error que estás viendo, AttributeError: Rectangle.set() got an unexpected keyword argument 'hist_kws', sugiere que hay un problema con los argumentos que estás pasando a la función sns.displot.

El problema aquí es que sns.displot es una función de nivel más alto que no acepta directamente los argumentos hist_kws y kde_kws. Estos argumentos son más adecuados para funciones como sns.histplot o sns.kdeplot, que son funciones de nivel más bajo que permiten más personalización.

Para solucionar este problema, puedes intentar usar sns.histplot y sns.kdeplot por separado. Aquí tienes un ejemplo de cómo podrías modificar tu código:

import seaborn as sns
import matplotlib.pyplot as plt

# Histograma acumulado
ax = sns.histplot(datos.Edad, cumulative=True, bins=10, stat='density', kde=True)

# Ajustes de la figura
ax.figure.set_size_inches(12, 4)
ax.set_title('Distribución de frecuencia acumulada', fontsize=18)
ax.set_xlabel('Acumulado', fontsize=14)
ax.set_ylabel('Años', fontsize=14)

plt.show()

Este código utiliza sns.histplot con el argumento cumulative=True para crear un histograma acumulado y también activa la estimación de densidad (KDE) con kde=True.

Espero que esto te ayude a resolver el problema. ¡Bons estudios!