No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Adquiere por un a帽o todos los cursos, escuelas y certificados por un precio especial.

Antes: $249

Currency
$219/a帽o

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Comprar ahora

Termina en:

0D
20H
42M
16S

Categ贸ricos

14/18
Recursos

Seaborn ofrece diferentes gr谩ficos para graficar datos categ贸ricos o variables de texto. A continuaci贸n ver谩s el c贸digo que podr谩s usar para gr谩ficar este tipo de datos.

Tipos de datos categ贸ricos para graficar en Seaborn

Empieza importando los datos que necesitas de las librer铆as

import seaborn as sns
import matplotlib.pyplot as plt 

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

Gr谩fica de cantidad

sns.countplot(data = tips, x= 'day', hue='sex'); 
countplot.JPG

Diagrama de puntos

sns.swarmplot(data= tips, x= 'day', y = 'total_bill', hue= 'sex', dodge=True); 
swarm.JPG

Diagrama de caja

sns.boxplot(data= tips, x= 'day', y = 'total_bill', hue= 'sex', dodge=True);
caja.JPG
  • Se pueden combinar distintos gr谩ficos
sns.boxplot(data= tips, x= 'day', y = 'total_bill', hue= 'sex', dodge=True);
sns.swarmplot(data= tips, x= 'day', y = 'total_bill', hue= 'sex', dodge=True, color = '0', marker= '<';');
juntos.JPG
  • Viol铆n: parecido a Boxplot, pero no muestra los cuartiles, sino como se concentran los datos con comparaci贸n split
sns.violinplot(data= tips, x= 'day', y = 'total_bill', hue= 'sex', split=True);
comparar.JPG
  • Catplot, con kind podemos cambiar el tipo de gr谩fico y se puede agregar otra variable col
sns.catplot(data= tips, x= 'day', y = 'total_bill', hue= 'sex', dodge=True, kind= 'box', col= 'time');
catplot.JPG

Aportes 23

Preguntas 6

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Para cualquier grafico en lugar de poner plt.show() para evitar que se vean esas palabras 鈥渞aras鈥 simplemente pongan ; despu茅s de c贸digo como se ve en la imagen de abajo.

Me di贸 curiosidad la variable size. Que es la cantidad de personas que participaron del encuentro para comer. Seg煤n una descripci贸n que encontr茅 del dataset: https://vincentarelbundock.github.io/Rdatasets/doc/reshape2/tips.html

sns.catplot(data=tips, x="day", hue="size", col="time", kind= "count" )
plt.show()

En el gr谩fico se puede ver que en estos encuentros para comer predominan con bastante margen las parejas. Seguido por los grupos de 2 o 3 personas. Es menos frecuente que salga una persona sola a comer.
La mayor铆a de estos encuentros se dan los Jueves al mediod铆a , los S谩bados a la noche y los Domingos a la noche.
Los Jueves al mediod铆a debe ser el encuentro debe ser m谩s de car谩cter laboral. Por eso no ocurre lo mismo el Viernes al mediod铆a que la gente est谩 pensando m谩s en el fin de semana.
Los s谩bados a la noche lo atribuyo m谩s a solteros, solteras y parejas con ganas de divertirse. En cambio el domingo a la noche podr铆a haber m谩s salida de grupo familiar. Habr铆a que tener datos de la edad de los participantes para chequear esto.

Quede enamorado de esta f贸rmula:

sns.catplot(data=tips,x="day",y="total_bill",hue="sex",dodge=True,kind="box",col="time");


que curioso es la imagen con los m铆nimos par谩metros

plt.figure(figsize= (6,6))
sns.swarmplot(data = tips)

lo que me asombro de esta clase es que los graficos anteriores mostraban mucha mas propina de los hombres, en esta se vio que era por outlier

Informaci贸n resumida de esta clase
#EstudiantesDePlatzi

  • Con el comando countplot creo una gr谩fica en donde puedo ver el conteo de mi variable categ贸rica

  • Con el par谩metro hue puedo segmentar por otra variable

  • Para ver un gr谩fico de dispersi贸n, uso el comando stripplot

  • Con el comando boxplot obtengo un gr谩fico de caja, este gr谩fico me sirve para ver la distribuci贸n por percentiles

  • Puedo combinar gr谩ficos uno encima de otro

  • Puedo obtener un gr谩fico de tipo viol铆n utilizando el comando violinplot

  • Con el comando catplot le estoy diciendo a seaborn que me sugiera un gr谩fico para variables categ贸ricas. Puedo cambiar el tipo de gr谩fico en sus par谩metros con la palabra clave kind

  • Con el par谩metro col puedo definir otra variable y me va a crear otro gr谩fico para comparar

mi c贸digo para poder personalizar los colores

sns.violinplot(data=tips ,x='day',y='total_bill',hue='sex',palette={"Male": "#452", "Female": ".85"},split=True)

Un peque帽o aporte de algunos gr谩ficos:

C贸digo:

sns.catplot(data=tips, x='day', y='total_bill', hue='sex', dodge=True, kind='swarm', col='time', palette={"Male": "g", "Female": "m"}) 
plt.show()


C贸digo:

sns.catplot(data=tips, x='day', y='total_bill', hue='sex', dodge=True, kind='point', col='time', palette={"Male": "g", "Female": "m"},markers=["^", "o"],linestyles=[":", "--"]) 
plt.show()

De verdad que despu茅s de usar a帽os exel, y quebrarme la cabeza tratando de pensar como hacer estas gr谩ficas categ贸ricas de forma eficiente, ac谩 con un par de lineas de c贸digo esta hecho.
Creo que me enamore de Seaborn!!!

De nuevo con respecto a la fecha de realizado el curso, el par谩metro color qued贸 deprecado y se utiliza es el par谩metro palette=鈥榙ark鈥 y se ve much铆simo mejor el gr谩fico

Apuntes de la case

Count

sns.countplot(data=tips,
              x='day',
              hue='sex')

Strip

sns.stripplot(data=tips,
              x='day',
              y='total_bill',
              dodge=True,
              hue='sex')

Swarm

sns.swarmplot(data=tips,
              x='day',
              y='total_bill',
              dodge=True,
              hue='sex')

Box

sns.boxplot(data=tips,
              x='day',
              y='total_bill',
              dodge=True,
              hue='sex')

Violin

sns.violinplot(data=tips,
              x='day',
              y='total_bill',
              dodge=True,
              hue='sex',
              palette='pastel',
              split=True)

Lo mejor siempre va para el final: CATPLOT

plt.figure(figsize = (10, 6))
sns.catplot(data = tips,
              x = 'day',
              y = 'total_bill',
              dodge = True,
              hue = 'sex',
              palette = 'pastel',
              kind = 'violin',
# kind in [box, bar, swarm, violin, strip]
              split = True,
              col= 'time')

Es posible ver la importancia del Boxplot en el an谩lisis de medias de tendencia central. Ac谩 un ejemplo![](

14. Categ贸ricos

import seaborn as sns
import matplotlib.pyplot as plt

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

sns.countplot(data=tips,x='day',hue='sex');

plt.figure(figsize=(6,6))
sns.stripplot(data=tips,x='day',y='total_bill',hue='sex',dodge=True);

plt.figure(figsize=(6,6))
sns.swarmplot(data=tips,x='day',y='total_bill',hue='sex',dodge=True);

plt.figure(figsize=(6,6))
sns.boxplot(data=tips,x='day',y='total_bill',hue='sex',dodge=True);
sns.swarmplot(data=tips,x='day',y='total_bill',hue='sex',dodge=True,color='0',marker='<');

plt.figure(figsize=(6,6))
sns.violinplot(data=tips,x='day',y='total_bill',hue='sex',dodge=True,palette='dark',split=True);

sns.violinplot(data=tips,x='day',y='total_bill');

sns.catplot(data=tips,x='day',y='total_bill',hue='sex',dodge=True,kind='box',col='time'); # Mas utilizado

7:53 -> Ya no se usa color=鈥0鈥, ahora de debe usar palette=鈥榙ark:0鈥

En futuras versiones el color=鈥0鈥 dejar谩 de funcionar , por lo que deben cambiar su c贸digo a palette=鈥榙ark:0鈥

Buena clase, catplot efectivamente es muy versatil.

Al mirar el datasset tips, con el comando pd.value_counts(tips[鈥榮ex鈥橾) obtengo: Male 157
Female 87
Name: sex, dtype: int64.
Es evidente que la poblaci贸n de mujeres que se evalu贸 es menor al numero de hombres, por lo que no puedo generalizar que los hombres dan mas propinas que las mujeres, por lo que es mejor usar un gr谩fico de proporciones para poder hacer un mejor comparativo.

sns.catplot(data=tips,x='day',y='total_bill',hue='sex', dodge=True, kind='strip', col='time')
plt.show()

Recuerden que para hacer estas gr谩ficas es importante tener en cuenta la sobrecarga cognitiva de la persona o el grupo de personas a las que vamos a presentar los datos. Si bien en la clase se muestran varios gr谩ficos juntos a manera de ejemplo en la pr谩ctica es importante mostrar la informaci贸n de forma clara para que el receptor entienda el mensaje que queremos comunicar.

El profesor al final de la clase menciona que estamos trabajando con tres variables, pero en realidad son cuatro (mejor aun). Por un lado tenemos a las variables categoricas: time, day, sex; y todas estas en relaci贸n al total bill

Seaborn ofrece diferentes gr谩ficos para graficar datos categ贸ricos o variables de texto. A continuaci贸n ver谩s el c贸digo que podr谩s usar para graficar este tipo de datos.
Tipos de datos categ贸ricos para graficar en Seaborn
Empieza importando los datos que necesitas de las librer铆as
________________________________________
[3]
1 s
import matplotlib.pyplot as plt
import seaborn as sns
________________________________________
[4]
1 s
titanic = sns.load_dataset("titanic")
titanic.head(10)
________________________________________
[5]
0 s
sns.countplot(data=titanic,x="class",hue="sex")
plt.show()
________________________________________
[6]
0 s
sns.countplot(data=titanic,y="embark_town",hue="sex")
plt.show()
________________________________________
[7]
0 s
plt.figure(figsize=(6,6))
sns.stripplot(data=titanic,x="class",y="fare",hue="sex",dodge=True)
plt.show()
#esta uan forma de analisar la distribucion que tengo con respecto a otras variables 
________________________________________
[ ]
plt.figure(figsize=(8,8))
sns.swarmplot(data=titanic,x="class",y="fare",hue="sex",dodge=True)
plt.show()
#con esta grafica tenemos una mejor manara de analisar la concentracion de los datos 
________________________________________
[ ]
sns.boxplot(data=titanic,y="age")
plt.show()
________________________________________
[ ]
plt.figure(figsize=(8,8))
sns.boxplot(data=titanic,x="class",y="fare",hue="sex",dodge=True)
sns.swarmplot(data=titanic,x="class",y="fare",hue="sex",dodge=True,color="0",marker=">")
plt.show()
#como sabemos aca podemos ver la distribucion estadistica por percentoles y cuartiles 
#podemos comvinar variables categoricas para tener un analisis con diferentes variables 
________________________________________
[8]
plt.figure(figsize=(6,6))
sns.violinplot(data=titanic,x="class",y="fare",hue="sex",dodge=True,palette="pastel")
plt.show()
#esta grafica es llamada violin, que me indica como se estan concentrando los datos, cada vez que sube mas son mucjo mas los datos que se concentran 
#y es muy parecido al rango intercuart铆lico 
________________________________________
[9]
from numpy.lib.shape_base import split
plt.figure(figsize=(6,6))
sns.violinplot(data=titanic,x="class",y="fare",hue="sex",split=True,palette="pastel")
plt.show()
#con el parametro (split) pdemos combinar los variables en un solo grafico de violin 
________________________________________
[11]
sns.violinplot(data=titanic,y="age")
plt.show()
#tambien puedo graficar variables num茅ricas  
________________________________________
[23]
plt.figure(figsize=(8,8))
sns.catplot(data=titanic,x="class",y="fare",hue="sex",dodge=True,kind="bar",col="survived")
plt.show()
#con (catplt), puedotrabajar diferentes graficas, agregandoles solamente el parametro de la grafica que queremos 
#es muy parecedo al de displot, solo con decirle que tipo de grafico quiero trabajar 
#puedo trabajar todos las graficas que trabajamos anteriormente solo con el parametro de la grafica que queremos graficar 
#aca estamos trabajando con tres distintas variables que con solo agregar un parametro me muestra mucha informacion
________________________________________
en esta clase aprendimos a trabajar con distintas graficas que maneja Seaborn, para diagramar datos categ贸ricos que son variables de tipo texto


Ejemplos graficos