No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Distribuciones

13/18
Recursos

Seaborn ofrece algunas gráficas u opciones que te permiten trabajar con distribuciones orientadas a tipos de datos numéricos. Veamos como puedes lograrlo utilizando código.

Uso de .kde y .displot para graficar distribuciones

  • Gráfico para distribuciones y que se acumulen cumulative
sns.histplot(data = tips, x= 'tip', bins = 15, cumulative=True)
cumulative.JPG
  • Como muestra en el eje y stat, presentar los datos multiple
sns.histplot(data = tips, x= 'tip', bins = 15, hue= 'sex', stat = 'density', multiple= 'dodge');
multiple.JPG

Uso de .kde

Gráfica de densidad

sns.kdeplot(data=tips, x='tip', hue='sex'); 
kde.JPG
  • Con acumulación
sns.kdeplot(data=tips, x='tip', hue='sex', cumulative=True);
kde_acumulado.JPG
  • Crea una área debajo de la curva
sns.kdeplot(data=tips, x='tip', hue='sex', shade=True);
area.JPG

Uso de .displot

Gráfica de distribución

  • Cambiar tipo de gráfica con kind.
sns.displot(data = tips, x = 'tip', hue = 'sex',kind= 'hist', multiple= 'stack');
displot.JPG

Ejercicio para practicar

El reto para ti es:

  • Usa displot, pero no con diagramas ‘hist’ ni de densidad ‘kde’, usa cualquier otro.
  • Usa otra segmentación por fumadores o día.

Aportes 95

Preguntas 10

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Hola, si desean guardar los diagramas como imagen para descargarlos y usarlos en otro lado pueden usar el plt.savefig(“name.png”)

Para el ejercicio compare la facturación y las propinas entre los fines de semana (sábado y domingo ) y los días laborables.
En los fines de semana las propinas son mayores y más personas dejan propina.

import seaborn as sns
import matplotlib.pyplot as plt 
import pandas as pd
tips = sns.load_dataset("tips") # convertimos el dataset de tips a dataframe 
tips['weekend'] = tips.apply(lambda x : True if (x['day'] == 'Sun' or x['day'] == 'Sat')  else False,axis=1)
# tips.head()
sns.displot(data=tips,x='tip',hue='weekend',  kde=True, multiple='dodge')

También en los fines de semana se factura más en cantidad y por unidad de comida.

sns.displot(data=tips,x='total_bill',hue='weekend',  kde=True, multiple='dodge')

En el gráfico combinado de facturación y propinas se ve como la zona de los fines de semana “contiene” en general a la zona de los días laborables. Lo que nos dice que los valores mayores de facturación y propinas corresponden a los días de semana.

sns.displot(data=tips,x='total_bill', y="tip", hue="weekend", kind="kde")

Es interesante que en general las propinas que dejan los hombres suman mas que la de las mujeres en todos los dias, pero en promedio, hay dias en los que las mujeres dan una propina mayor. Esto nos dice que no necesariamente los hombres son mas generosos, si no que en este restaurante en especifico, van mas hombres, o los que pagan la cuenta en general son hombres.



Reto completado!!
Use una grafica de rugplot

En el 2023 el método shade actualmente está descontinuado y dejará de funcionar en futuras versiones de seaborn, la recomendación oficial ahora es usar fill

Yo encontré que los sábados es el día que hay más propinas de hasta 3 dólares aproximadamente y de 7 a 10 dólares.
Pero de 3 a 6 dólares hay más propinas los domingos

Hola!

mi aporte para esta clase se fundamenta en usar el parámetro col='col_name' donde podremos aplicar el mismo gráfico y segmentarlo por una dimensión para este ejemplo usare:

 

  • La comparación de x='total_bill' con y='tip'

  • Un hue='smoker' para visualizar los fumadores smokers

  • Visualizaciones independientes de sexo usando col='sex'.

sns.displot(data=tips, x='total_bill', y='tip', hue='smoker', col='sex');

Ojo para la versión seaborn v0.14.0 el parámetro shade será un error, el parámetro pasará a ser fill ; siendo fill=True

Sabado y domingos la gente deja mas propina

Cuando se habla del parámetro shade, este ya está deprecado y presentará error para Seaborn V.0.14.0 en adelante, por lo que se requiere utilizar el parámetro fill

7:30 -> “shade” esta desactualizado. Ahora se usa “fill”

Solución al reto

fig, axes = plt.subplots(figsize=(8,6))
sns.kdeplot(data=tips, x='Tip', hue='Day', shade=True)
fig.suptitle('Density Plot', fontsize=16, horizontalalignment='center')
sns.set(style="dark", palette="muted", font="Segoe UI")
sns.color_palette("flare", as_cmap=True)
plt.grid()
fig.tight_layout()

A la fecha shade= esta descontinuado (decrecated) y la libreria menciona que se debe usar fill=

Reto con regplot:

sns.regplot(data=tips,x="total_bill",y="tip")
plt.show()

Reto con scatterplot:

sns.scatterplot(data=tips,x="total_bill",y="tip",hue="sex")
plt.show()

busque con un ejemplo usando relplot.

Aqui podemos ver que los fumadores no dan propinas mayores a 7 dolares.

sns.displot(tips, x='tip', y='total_bill', hue='smoker', kind='kde')
plt.show()

Cuando la cena esta cara, los fumadores no dejan tanta propina.El dinero no da para todo jajaja

sns.displot(data = tips, x = 'tip', hue = 'size', kind = 'kde', multiple = 'stack')
plt.show()

Comparto este grafico que me parecio muy interesante

sns.jointplot(data = tips, y='tip', x = 'total_bill', kind='reg')
plt.savefig('./fig/figura.png')
plt.show()

cuando uses kdeplot en lugar de shade usa fill=True

Shade ya fue deprecado, ahora tocara usar fill=True.

Otros ejemplos mas de diagramas

Aca mi aporte con una deduccion interesante, los smoker parecen salirse de la media contantemente, para ambos lados de la drafica, implicaun comportamiento ms extremo para ambos lados para este grupo en especifico

sns.displot(data=tips, x='smoker', hue='sex', element="step")

esta vez probé el comportamiento de las propinas según el tipo de comida y me pareció interesante kde para este proposito.

#distribution plot feature at sns
sns.displot(data=tips,x='tip',y='total_bill',hue='time',kind='kde',palette="deep")
plt.show() 
sns.displot(data=tips, x='tip',hue='sex',kind='ecdf')plt.show()
Aqui algunos de los ejemplos que realicé: ![](https://static.platzi.com/media/user_upload/image-0e4fdda6-c190-470e-a59d-44156cbfdda9.jpg) ![](https://static.platzi.com/media/user_upload/image-90c99227-9270-4514-831c-b59bcf1811a1.jpg)
Primero lo que hice fue comparar el total de la propina dad por mujeres y hombres, en lo que obtuve el siguiente resultado: ![](https://static.platzi.com/media/user_upload/image-3567b2a2-5b3f-482f-956e-f57c8c3bd4da.jpg)Donde se puede observar que de la propina total, el mayor porcentaje fue dado por hombres. Sin embargo queria saber en promedio que tanto del total de la cuenta daban en propina ambos sexos, obteniendo los siguientes resultados: ![](https://static.platzi.com/media/user_upload/image-a00c90c4-ae2b-4415-b76a-97ceeb0e21b4.jpg)Donde se puede apreciar que los hombres en promedio dan el 15.7 % de propina del total de su pedido, un 1% por encima de las mujeres. Estos resultados son muy concluyentes, a pesar de la diferencia en valor bruto de la cantidad de propina dada por cada sexo, ambos dan en promedio, el mismo porcentaje de propina del total de la cuenta.
el parametro shade está descontinuado de acuerdo a la información mostrada por la librería. Lo pueden reemplazar por: fill=True or False
Hola! Les comparto mi reto: ![](https://static.platzi.com/media/user_upload/imagen-314b9a84-208e-49c2-9903-692b81ce63a4.jpg)
para tener en cuenta, desde la versión v0.14.0 la notación shade dara como resultado un error, ahora se debe usar la notación 'fill' para seguir generando ese relleno del área \<ipython-input-16-a35f3723d04d>:1: FutureWarning: `shade` is now deprecated in favor of `fill`; setting `fill=True`. This will become an error in seaborn v0.14.0; please update your code. sns.kdeplot(data=tips, x='tip', hue='sex', shade=True)
Es más frecuente dejar propina en la cena que en el almuerzo. Adicional, el porcentaje de propina es del 14-18% sobre el valor de la cena. ![](https://static.platzi.com/media/user_upload/image-e363c5aa-e8e6-47b1-abfb-e768603e6b62.jpg) ![](https://static.platzi.com/media/user_upload/image-16916fd2-5f0e-4016-98c6-5eea9ac517f8.jpg)
Mi aporte ![](https://static.platzi.com/media/user_upload/image-70675b66-de86-4a35-aaf4-54f907908f44.jpg)
`sns.set_theme()` `sns.histplot( data=tips, x='tip', y='total_bill', hue='time', round(np.sqrt(len(tips.tip))))` `plt.show()` ![](https://static.platzi.com/media/user_upload/image-700bb9fe-c10c-4cf7-bca4-a04b65143189.jpg)
```python sns.set(style= 'ticks', palette= 'deep', font= 'Verdana') sns.displot(data= tips, x='tip', hue= 'sex', kind= 'hist',kde= True, multiple= 'stack', alpha= 0.3).set( title= 'Disribución de propinas por sexo', xlabel= 'Conteo de propinas', ylabel= 'Tamaño de la propina') ##DISPLOT se usa para diagramas de distribución en general, selecciona el más apropiado par anuestros datos, pero puedo específicar el tipo con kind plt.show() ```sns.set(style= 'ticks', palette= 'deep', font= 'Verdana')sns.displot(data= tips, x='tip', hue= 'sex', kind= 'hist',kde= True, multiple= 'stack', alpha= 0.3).set(    title= 'Disribución de propinas por sexo', xlabel= 'Conteo de propinas', ylabel= 'Tamaño de la propina') ##DISPLOT se usa para diagramas de distribución en general, selecciona el más apropiado par anuestros datos, pero puedo específicar el tipo con kindplt.show()
La cuenta total por tamaño del grupo, separado por sexo, muestra que las parejas son las rentables, por otro lado el sexo que más paga la cuenta es el masculino.![](https://static.platzi.com/media/user_upload/image-63a5f508-2754-4657-ab4c-53e3d37ea0dd.jpg)sin embargo el sexo que suele dejar más propina porcentualmente es el femenino, y además cuando las personas van solas es más probable que dejen propina![](https://static.platzi.com/media/user_upload/image-53a8179f-a1f1-4c54-8171-3e051613a2f4.jpg)

Esta clase sobre el uso de distribuciones esta interesante en el uso de este y comos se debe implementar. Es algo que me gusta. Estoy listo. Aqui esta el reto:
![](

![](https://static.platzi.com/media/user_upload/image-08cd46c3-0b76-4bce-9383-d3f2b32b1bf9.jpg) ```js sns.displot(data=tips, x='tip', y='total_bill', hue='day') plt.title('Relacion de propina y gasto total por días de la semana ') plt.show() ```sns.displot(data=tips, x='tip', y='total\_bill', hue='day')plt.title('Relacion de propina y gasto total por días de la semana ')plt.show()
Actualmente python esta aceptando en lugar de```python shade = True ```el parametro ```python fill = True ```

Interpreto que consegui la relacion entre el total de las cuentas y las propinas en respectivos horiaros. Podemos ver que la mayor concentracion se da en las cenas. Tambie podemos ver que los gastos mas altos son realizados en la cena, y las propinas mas altas van de la mano con las cuentaas mas altas. Estas siempre por lo general durante una cena.

A partir de Seaborn versión 0.11.0, la función `distplot` ha sido marcada como obsoleta y se recomienda usar `histplot` en su lugar. Además, el argumento `data` se utiliza en la función `sns.histplot` de Seaborn para especificar el conjunto de datos. ```js import seaborn as sns import matplotlib.pyplot as plt # Cargar el conjunto de datos 'tips' tips = sns.load_dataset('tips') # Usar sns.histplot en lugar de sns.distplot sns.histplot(data=tips, x='tip', hue='sex', kde=True) # Mostrar el gráfico plt.show() ```n este código, he reemplazado `sns.distplot` con `sns.histplot`. Además, he configurado `kde=True` para incluir la estimación de la densidad del kernel (KDE) en el gráfico.
![](https://static.platzi.com/media/user_upload/image-0ea4b3aa-56bc-477d-ba81-8609a617f21e.jpg) ```python sns.displot(data=tips,x='tip', y='size', hue='sex', col='time', palette='pastel', kind='kde', alpha=0.5, levels=4) plt.show() ``` En este ejemplo, dividimos en dos columnas la informacion, una para el almuerzo y la otra para la cena. En cada gráfica mostramos la relación entre propinas y tamaño de la mesa, usando un grafico de densidad para mostrar la cantidad de propinas que dan tanto hombres como mujeres. Adicionamos el parametro "level" para reducir la cantidad de curvas del grafico de densidad y asi visualizar mas fácilmente la informacion para cada genero.

Aquí les dejo un código, donde se explica por partes como agregar mas de un grafica con seaborn, aplicando lo visto en clases anteriores

#importar librerias
import seaborn as sns
import matplotlib.pyplot as plt
#cargar la data
tips = sns.load_dataset('tips')
#subplots
fig, axes = plt.subplots(nrows=2,ncols=2, figsize = (12,8))
#seaborn en cada subsplots

# Subplot 1: Distribución de la cuenta total
sns.histplot(data=tips, x="total_bill", kde=True, ax=axes[0, 0])
axes[0, 0].set_title("Distribución de Total Bill")

# Subplot 2: cuenta por cada dia y cada sexo
sns.countplot(data = tips, x = 'day', hue = 'sex', ax=axes[0,1])
axes[0, 1].set_title("countplot Total Bill por Día")

# Subplot 3:  Boxplot de la cuenta total vs día de la semana por cada sexo
sns.boxplot(data = tips, x= 'day', y='total_bill', hue='sex', dodge=True, ax=axes[1,0])
axes[1, 0].set_title("Boxplot Total Bill por Día")

# Subplot 4: violinplot de la cuenta total vs el dia de la semana por cada sexo
sns.violinplot(data = tips, x= 'day', y = 'total_bill', hue='sex',split= True, dodge= True,ax=axes[1,1])
axes[1, 1].set_title("violinplot Total Bill por Día")

# Ajustar espaciado entre subplots
plt.tight_layout()

# Mostrar los subplots
plt.show()

Apuntes de la clase

Densidad

sns.ecdfplot(data=tips,
            x='tip',
            hue='sex',
            stat='count')

Lo que sea que signifique ecdf

sns.displot(data=tips,
            x='tip',
            hue='sex',
            kind='ecdf')

Ejemplo de valores acumulados

sns.displot(data=tips,
            x='tip',
            bins=15,
            cumulative=True)

Tanto hombres como mujeres son mas generosos los días domingos:

sns.barplot(x='sex',y='total_bill',data=tips, hue='day')
plt.show()

Aqui mi reto: 🐱‍👤⚡

sns.boxplot(data= tips,x='tip', y='day', hue = 'smoker')
plt.show()

En este caso hice una grafica de “Cajas y bigotes” Comparando los días que se tiene más propinas teniendo como parametro si son o no fumadores
![](

13. Distribuciones

import seaborn as sns
import matplotlib.pyplot as plt

tips = sns.load_dataset('tips')
tips.head()

sns.histplot(data=tips,x='tip',bins=15,cumulative=False,hue='sex',stat='count',multiple='fill');

sns.kdeplot(data=tips,x='tip',hue='sex',cumulative=False,fill=True,bw_adjust=1);

sns.ecdfplot(data=tips,x='tip',hue='sex',stat='count');

sns.displot(data=tips,x='tip',hue='sex',kind='hist',multiple='stack');

Usar shade es deprecated, debemos usar en su lugar fill=True

`shade` is now deprecated in favor of `fill`; setting `fill=True`.
This will become an error in seaborn v0.14.0; please update your code.

En la cena es donde mas propina se recibe.

Quise ver la diferencia de cambiar el parametro stat:

fig, axes = plt.subplots(2, 3, figsize=(10, 6), sharey=False)
fig.suptitle('Conparacion del parametro stat')

sns.histplot(ax=axes[0,0], data=tips, x='tip', bins=20, stat='count')
axes[0,0].set_title('count')
axes[0,0].set_xlabel('')
axes[0,0].set_ylabel('')

sns.histplot(ax=axes[0,1], data=tips, x='tip', bins=20, stat='frequency')
axes[0,1].set_title('frequency')
axes[0,1].set_xlabel('')
axes[0,1].set_ylabel('')

sns.histplot(ax=axes[0,2], data=tips, x='tip', bins=20, stat='probability')
axes[0,2].set_title('probability')
axes[0,2].set_xlabel('')
axes[0,2].set_ylabel('')

sns.histplot(ax=axes[1,0], data=tips, x='tip', bins=20, stat='percent')
axes[1,0].set_title('percent')
axes[1,0].set_xlabel('')
axes[1,0].set_ylabel('')

sns.histplot(ax=axes[1,1], data=tips, x='tip', bins=20, stat='density')
axes[1,1].set_title('density')
axes[1,1].set_xlabel('')
axes[1,1].set_ylabel('')

fig.tight_layout()

Usar shade esta depreciado usemos en su lugar fill

`shade` is now deprecated in favor of `fill`; setting `fill=True`.
This will become an error in seaborn v0.14.0; please update your code.

Mi aporte:

`sns.displot(data=tips, x="tip", y="total_bill", kind="kde", hue="smoker", levels=4 )e> 
sns.displot(data=tips, x="tip", y="total_bill", hue="time", binwidth=(2,4),
            cbar=True)
plt.show()

Mi aporte al reto:

sns.histplot(data=tips, x='total_bill',y='tip',hue='day',stat='count',multiple='dodge')
plt.show()

![](

sns.rugplot(data=tips, x='tip', hue='day')
plt.show()

en mi aporte , grafico de manera contable para el eje y, dependiendo en x de la deuda total, enfocando el analisis en la comida especifica, y graficando dejando en especifico, los montos que se pagaron y segun ese monto como se distribuyo en las comidas. esta herramienta me parece poderosisima.
gracias

<sns.displot(data=tips,x='total_bill',hue='smoker', kind='ecdf',  stat='count')
plt.show()> 
<sns.displot(data=tips,x='tip',hue='sex', kind='kde', rug=True)
plt.show()> 
<sns.displot(data=tips, x='total_bill', y='tip', kind='kde')
plt.show()> 

Distribución de fumadores por día utilizando la visualización ECDF

sns.displot(data = tips, x = 'day', hue= 'smoker',kind= 'ecdf'); 
sns.violinplot(data=tips, x='tip',hue='sex',kind='kde',multiple='stack')
plt.show() 
sns.jointplot( x='total_bill',y='tip',data=tips)
plt.show()
sns.pairplot( data=tips)
plt.show()
sns.lmplot( x='total_bill',y='tip',row='sex',col='time',data=tips)
plt.show()

Espero haber entendido lo que se pidió de ejercicio.
Ejercicio.

  • Usa displot, pero no con diagramas ‘hist’ ni de densidad ‘kde’, usa cualquier otro.
  • Usa otra segmentación por fumadores o día.
sns.displot(
    data = tips, 
    x = 'tip', 
    hue = 'smoker',
    kind= 'ecdf', # (ecdf, hist, kde)
    stat = 'count');

compañeros, aquí pueden encontrar mejor los parámetros de uso de displot en seaborn.

https://seaborn.pydata.org/generated/seaborn.displot.html

El reto de hoy. Hice un gráfico kde con ‘tip’ en el eje x y ‘total_bill’ en el eje y.

¿Que cantidad de de clientes dan más propina del jueves al domingo?

#Reto Platzi
sns.displot(data=tips, x="total_bill", y='tip', hue='time', col='day')
plt.savefig("Seaborn.png")
plt.show()

Información resumida de esta clase
#EstudiantesDePlatzi

  • Un gráfico que puedo utilizar para ver las distribuciones es el histograma y su comando es histplot

  • Con el parámetro hue puedo hacer de manera visual una clasificación de los datos por otra variable

  • El parámetro stat me permite cambiar el modo en el que se trabajen los datos, por ejemplo, conteo, frecuencia, probabilidad, etc.

  • Utilizando el parámetro multiple puedo definir como deseo presentar mis datos

  • Con el comando kdeplot puedo crear un diagrama de densidad

  • El parámetro shade me ayuda a crear un sombreado debajo de la curva

  • Con el parámetro bw_adjust puedo ajustar los valores que se están trabajando en los ejes

  • Con el comando displot le estoy diciendo a Seaborn que me utilice un diagrama de distribución sugerido

  • Cuando sepa que debo usar una gráfica de distribución puedo usar el comando displot y en sus parámetros cambiar el tipo de gráfico si así lo deseo

Yo queria saber si habia una relacion en entre la hora entre el tiempo de la comida y el sexo, y creo que con esasimple linea se nota algo curioso, y es que en el tiempo del almuerzo es equitativo el registro de propinas entre hombres y mujeres, de hecho es mas el de mujeres que de hombres, pero a la hora de la cena se dispara la diferencia, como si los hombres fueran a cenar mas, o a la hora de la cena ellos pagan las propinas, agradeceria alguna opinion

  • Se pueden hacer subplots usando col.
  • Se puede ajustar el tamaño con height y aspect
sns.displot(data=tips, x='tip', hue='smoker', kind='kde', col='day', multiple='stack', height=4, aspect=.7)
plt.show()
sns.displot(data=tips, x='tip', kind='hist', hue='smoker', stat='probability', multiple='dodge');

Sin ánimo de entrar en polémica y por pura curiosidad de visualización de datos, hice un análisis de cuánto se da de propina, por sexo y por persona. Estos son los resultados:

tips.groupby('sex').describe()

Solo quería destacar lo increíblemente potente, fácil y elegante de Python, NumPy, Seaborn y la función describe().
Y al excelente profe.
P.D.: los hombres damos más propina. 😏

![](

reto completado

Aquí está mi gráfico!

sns.scatterplot(data=tips, x="tip",y="total_bill", hue="smoker")
plt.xlabel("Propina")
plt.ylabel("Cuenta total")
plt.legend(title="Fumadores",loc="lower right")
plt.savefig("primer_t.png")
plt.show()

No se como insertar una imagen jajajajaj, pero ahí va!

RETO DE CLASE

trabajando con distribuciones en Seaborn
________________________________________
[14]
0 s
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from scipy.stats import gaussian_kde
________________________________________
[2]
0 s
titanic = sns.load_dataset("titanic")
titanic.head()
________________________________________
[3]
0 s
sns.histplot(data=titanic,x="age",bins=10)
plt.show()
#como sabemos con hist, podemo graficar un histograma mostrando el valor de nuetrsos datos en barra
#este histograma me muetra las edades de los tripulantes de titanic y la mayoria de los tripulantes, estaba entre los 20 y 25 años 
#con (bins) puedo generar un hist con las barras que yo desee 
________________________________________
[4]
0 s
sns.histplot(data=titanic,x="age",bins=10,cumulative=True)
plt.show()
#con la funcion (cumulative) podemos ver el valor acomulativo de mis frecuencias en mi histograma 
________________________________________
[5]
0 s
sns.histplot(data=titanic,x="age",bins=10,cumulative=False,hue="sex")
plt.show()
#en esta grafica estoy viendo la distribucion entre hombres y mujeres de manera frecuencial 
________________________________________
[ ]
sns.histplot(data=titanic,x="age",bins=10,cumulative=False,hue="sex",stat="frequency")
plt.show()
#en esta grafica no estamos trabajando el conteo sino con la frecuencia de los valores 
________________________________________
[ ]
sns.histplot(data=titanic,x="age",bins=10,cumulative=False,hue="sex",stat="probability")
plt.show()
#histograma que se trabaja con la probabilidad de los datos 
________________________________________
[ ]
sns.histplot(data=titanic,x="age",bins=10,cumulative=False,hue="sex",stat="percent")
plt.show()
#en este histo se trabaja con el percen que entrega los datos e nivel de porcentajes 
________________________________________
[ ]
sns.histplot(data=titanic,x="age",bins=10,cumulative=False,hue="sex",stat="density")
plt.show()
#tambien podemos trabajar a nivel de densidad mi histograma 
________________________________________
[ ]
sns.histplot(data=titanic,x="age",bins=10,cumulative=False,hue="sex",stat="count",multiple="stack")
plt.show()
#count es por defeto
#con la parametro (multiple), como quiero mostrar mis datos y tenemos el ejemplo de stak o estaquiados, 
#que me muetra donde empieza uno y donde termina el otro uno encima del otro que es la grafica que e separa en esta ocacion 
________________________________________
[ ]
sns.histplot(data=titanic,x="age",bins=10,cumulative=False,hue="sex",stat="count",multiple="layer")
plt.show()
#tambien esta de tipo layer, como estaba anteriormente 
________________________________________
[ ]
sns.histplot(data=titanic,x="age",bins=10,cumulative=False,hue="sex",stat="count",multiple="dodge")
plt.show()
#con la funcion (dodge)nos muetra los valores individualmente uno al lado del otro y es el mas usado de todos 
________________________________________
[ ]
sns.histplot(data=titanic,x="age",bins=10,cumulative=False,hue="sex",stat="count",multiple="fill")
plt.show()
#con el parametro (fill), me muetra de 0 a 1, mostrandome toda la probabilidad, aunque el que se recomienda mas es dodge
________________________________________
asi se trabajan diferentes parametros a nivel del histograma
________________________________________
que otro gráficos a nivel de distribuciones puedo trabajar
________________________________________
[ ]
sns.kdeplot(data=titanic,x="age",hue="sex")
plt.show()
#aca tenemos un diagrama de densidad de las edades de hombres y mujeres de los tripulantes del titanic, aca nos muetra que los hombres son los que hay mas hombres que mujeres 
#al igual que la edad  
________________________________________
[ ]
sns.kdeplot(data=titanic,x="age",hue="sex",cumulative=True)
plt.show()
#con true empieza a comular los valores de atras hacia a delante como en el histograma 
________________________________________
[ ]
sns.kdeplot(data=titanic,x="age",hue="sex",cumulative=False,shade=True,color="g")
plt.show()
#con el parametro (shade) me completa no solo con la linea sino que me hace un area que esta bajo la curba que lo pinta de determinadao color para que sea mas facil de analisar 
________________________________________
[ ]
sns.kdeplot(data=titanic,x="age",hue="sex",cumulative=False,shade=True,bw_adjust=1)
plt.show()
#con el parametro (bw_ajust), ajuasta directamente la grafica y los parametros 
________________________________________
otro de los gráficos que puedo trabajar en distribuciones es ecdfplot
________________________________________
[ ]
sns.ecdfplot(data=titanic,x="age",hue="sex",stat="count")
plt.show()
#esta grafica escalonada de las proporcion de las diferentes edades entre mujeres y hombres ayuda a algunos ejemplos
#con esta grafica tambiem puedo trabajar los diferentes parametros que trabajamos en el histograma y la dencidad  
________________________________________
trabajando con displot
________________________________________
[ ]
sns.displot(data=titanic,x="age",hue="sex")
plt.show()
#con el parametro (displot), me genera un histograma 
________________________________________
[6]
sns.displot(data=titanic,x="age",hue="sex",kind="hist",multiple="stack")
plt.show()
#aca tambien puedo generar una graffico de densidad solo utilisando un grfico que es displot
# al cambiar el parametro con el tipo de grafica que quiero 
#condisplot es la herramienta general para todas graficas con sus respetivos parametros 
________________________________________
Seaborn ofrece distintos gráficos muy fáciles de generar con los que puedo trabajar, y además ofrece displot que es para analizar y trabajar distribuciones
________________________________________
[10]
0 s
sns.scatterplot(data=titanic,x="age",y="fare",hue="sex")
plt.show()
________________________________________
[15]
0 s
sns.set(style="darkgrid")
df = sns.load_dataset('titanic')
________________________________________
[17]
0 s
fig = sns.kdeplot(df['age'], shade=True, color="r")
fig = sns.kdeplot(df['fare'], shade=True, color="b")
plt.show()

reto

Lo único que encontré de displot es que tiene solo 3 posibles parámetros para kind= ya que hist y kde fueron restringidos en el reto utilice ecdf parece una función de escalón.

En el data set “Tips” he hallado lo siguiente:

  1. Se puede afirmar que en este restaurante solo hay atención en la noche los fines de semana, ya que durante la hora de almuerzo no ha ido ningún cliente. Asimismo, los sábado son los días donde más gente recurre a cenar al restaurante y los jueves son aquellos donde más gente va a almorzar.
  1. Los hombres son los que más recurren a este resturante. Por ello, se puede observar que son los que más propinas dan y los que más dinero gastan en promedio.

  1. Si comparamos las propinas con la factura total, uno puede observar una correlación positiva. Sin embargo, existen ciertos puntos en el plano que no cumplen con ello. Por ello, uno no puede afirmar con 100% de seguridad que a mayor propina, mayot factura total (Otra interpretación: El que gasto más dinero en el restuarante es aquel que más propina dejó).
  • Comprobé el comportamiento de las propinas con respecto al tiempo.
    Al parecer, se deja más propina en el Almuerzo que en la Cena.

Conteo de propinas por hora del día

sns.set(style='dark',palette="dark",font='Arial')
sns.scatterplot(data=tips,x='tip',y='total_bill',hue='smoker',alpha=0.5)
plt.show()

Claramente podemos apreciar una correlación positiva entre el precio total de la comida y los tips. Además, comparando con otra variable (si la persona es fumadora), podemos ver que los no-fumadores tienden a dejar mejores propinas.

Reto

Haciendo uso de rugplot

sns.scatterplot(data=tips, x=“size”, y=“tip”)
sns.rugplot(data=tips, x=“size”, y=“tip”)

Mi desafío:

Grafico de dispersión entre costo de la comida y la propina abierto por horario de la comida entre almuerzo y cena:

sns.scatterplot(data=tips, x='total_bill', y='tip', hue='time', palette='Set2' )
plt.show()

Quería comprobar si las personas fumadoras dejaban más propinas que las personas que no fumaban

Se pudo comprobar que las personas que no fuman dejaban más propina que las que fuman

tips['sex_smoker'] = tips.apply(lambda x: True if (x['sex'] == 'Male' and x['smoker'] == 'Yes' ) else (True if x['sex'] == 'Female' and x['smoker'] == 'Yes' else False), axis = 1)

Fui redundante en el código, se puede mejorar. Sin embargo, quería aprender como hacer un if, elif and else

👾

No puedo ajuntar el gráfico

sns.displot(x="total_bill", y="tip", row="sex", col="time", data=tips, kind='kde')
plt.show()

Reto:
El jueves la propina ingresa principalmente del almuerzo y el fin de semana de la cena; el sabado es el dia que se obtiene la propina más alta.

¿Qué tan común es que un fumador de propina?🧐