Para cualquier grafico en lugar de poner plt.show() para evitar que se vean esas palabras “raras” simplemente pongan ; después de código como se ve en la imagen de abajo.
Visualización de datos con Python
La importancia de la visualización de datos
Matplotlib
Pyplot básico
Subplot
Método orientado a objetos
Subplots
Leyendas, etiquetas, títulos, tamaño
Colores y estilos
Bar Plot
Crear otro tipo de gráficas
Quiz: Matplotlib
Seaborn
Seaborn
Set
Parámetros más usados con Seaborn
Distribuciones
Categóricos
Relation
Jointplot y Pairplot
Heatmap
Quiz: Seaborn
Cierre del curso
Posibilidades con Matplotlib y Seaborn
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
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.
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)
sns.countplot(data = tips, x= 'day', hue='sex');
sns.swarmplot(data= tips, x= 'day', y = 'total_bill', hue= 'sex', dodge=True);
sns.boxplot(data= tips, x= 'day', y = 'total_bill', hue= 'sex', dodge=True);
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= '<';');
split
sns.violinplot(data= tips, x= 'day', y = 'total_bill', hue= 'sex', split=True);
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');
Aportes 30
Preguntas 9
Para cualquier grafico en lugar de poner plt.show() para evitar que se vean esas palabras “raras” 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
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=‘dark’ y se ve muchísimo mejor el gráfico
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!!!
Me encanto esta clase con respecto al desarrollo y funcionamiento del tema. No sabia que las graficas de seaborn pueden combinarse y trabajar con una cantidad sin fin de categorias.
Saluden a color=
que se va…!
NO es que el boxplot también grafique o funcione con variables numéricas, el boxplot solo grafica o funciona con variables numéricas (cuantitativas). Aunque para comparar se pueden establecer nivles en base a variables categóricas.
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![](
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=‘dark:0’
En futuras versiones el color=“0” dejará de funcionar , por lo que deben cambiar su código a palette=‘dark:0’
Buena clase, catplot efectivamente es muy versatil.
Al mirar el datasset tips, con el comando pd.value_counts(tips[‘sex’]) 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
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?