Visualización de datos en Python con Seaborn

python
visualización de datos
seaborn
Visualización de datos en Python con Seaborn cover image

Hoy en día, el recurso más valioso del mundo ya no es el petróleo, sino los datos. La visualización se está convirtiendo en una herramienta más importante para dar sentido a los miles de millones de filas de datos. Al traducir los datos en una representación gráfica que es fácil de interpretar, la visualización de datos ayuda en la narración de datos al resaltar información relevante, patrones y valores atípicos. Sin embargo, los datos y los gráficos deben trabajar juntos: es el arte de integrar un gran análisis con una gran narración. En esta publicación de blog, le mostraremos "Sea Born", una de las herramientas de visualización más conocidas escritas en Python.

Herramientas de visualización

Utilizamos herramientas de visualización para visualizar las tendencias, patrones, valores atípicos y la relación entre variables. Es una habilidad muy demandada, especialmente para una carrera de ciencia de datos.

Marítimo

Seaborn es una biblioteca de visualización de datos de Python basada en matplotlib. Proporciona una interfaz de alto nivel para dibujar gráficos estadísticos atractivos e informativos.

Funciones de trazado Seaborn:

En Seaborn tenemos 3 categorías de parcelas

  • Parcelas categóricas.

  • Parcelas distributivas.

  • Parcelas relacionales.


Parcelas categóricas

Usamos las funciones gráficas categóricas de seaborn para visualizar las tendencias de una variable categórica o para visualizar la relación entre dos variables con al menos una categórica.

Gráfica de conteo:

  • Muestra los recuentos de observaciones de cada categoría de la variable categórica. Simplemente contamos el número de observaciones de cada categoría de la variable
seaborn.catplot(kind = 'count',
                data = dataset,
                x    = 'variable')

Gráfica de recuento

Gráfico de barras:

  • Representa una estimación de tendencia de una variable continua con la altura del rectángulo para cada categoría de una variable categórica. Entonces, la función de trazado toma dos variables como entrada, una que es continua y otra categórica. Para cada categoría de variable_1, calculamos la tendencia de variable_2.

  • La tendencia puede ser la media, la varianza, o puedes pasar alguna función personalizada…

seaborn.catplot(kind = 'bar',**data = dataset,**
                x    = 'variable_1',**y    = 'variable_2',**
                estimator = np.mean)**

Gráfico de barras

Parcela de tiras:

  • El gráfico de bandas es uno de los gráficos más simples y directos en la visualización de datos, simplemente dibujamos puntos que representan los valores de una variable continua. Para cada categoría de la Variable 1, dibujaremos los valores de la Variable 2.

Gráfico de bandas

seaborn.catplot(kind = 'strip',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                jitter = 0.15)

Parcela de enjambre:

  • Swarm plot es muy similar a strip plot, ya que tiene exactamente la misma funcionalidad. La única diferencia está en cómo muestra los puntos. Mientras que en el gráfico de franjas, los puntos de datos pueden superponerse ya que se colocan aleatoriamente en el eje x, en el gráfico de enjambre nos aseguramos de que los puntos no se superpongan apilándolos uno encima del otro.

  • El inconveniente aquí es que si tenemos muchos puntos de datos, sería imposible no superponerlos, por lo que el algoritmo eliminará algunos puntos de datos para que no se superpongan.

Gráfica de enjambre

seaborn.catplot(kind = 'swarm',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2')

Diagrama de caja:

  • El diagrama de caja se usa para representar la distribución de una variable continua para cada categoría de una variable categórica. Aunque es bastante simple, arroja mucha información:

  • Los valores de los cuartiles:

La caja tiene una línea horizontal adentro, que representa la mediana. La línea horizontal de arriba son los cuartiles superiores, la de abajo son los cuartiles inferiores.

  • Los valores atípicos:

Observe que hay algunos puntos fuera del cuadro, estos puntos representan los valores atípicos

Diagrama de caja

seaborn.catplot(kind = 'box',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2')

Trama de violín:

En lugar de trazar el cuadro de distribución, el gráfico de violín trazará la distribución real de la variable continua para cada categoría de la variable categórica utilizando KDE (Estimación de densidad del núcleo)

Trama de violín

seaborn.catplot(kind = 'violin',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2')

Parcelas de distribución:

Usamos las funciones de trazado de distribución de seaborn para visualizar la distribución de variables continuas.

Trama histórica:

El hist plot representa la distribución de variables continuas utilizando bins.

Gráfica histórica

seaborn.distplot(kind = 'hist',
                 data = dataset,
                 x    = 'variable',
                 bins = 20)

Gráfico de KDE:

El diagrama de Kde representa la distribución real de los datos, utilizando la estimación de densidad del kernel.

Gráfico de KDE

seaborn.distplot(kind = 'kde',
                 data = dataset,
                 x    = 'variable')

También se puede utilizar para representar la distribución bivariada de dos variables continuas.

Gráfico KDE

seaborn.distplot(kind = 'kde',
                 data = dataset,
                 x    = 'variable_1',
                 y    = 'variable_2')

Gráfico ECDF:

La gráfica ECDF representa la distribución acumulativa empírica de una variable continua.

Gráfico ECDF

seaborn.distplot(kind = 'ecdf',
                 data = dataset,
                 x    = 'variable')

Gráficas relacionales:

Usamos las funciones gráficas relacionales de seaborn para visualizar la relación entre variables continuas.

Gráfico de dispersión:

  • Muestra la relación entre dos variables continuas, simplemente graficando todos los puntos de datos.

Gráfico de dispersión

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2')

Gráfico de líneas:

  • Representa la relación entre variables como una función continua.

Gráfico de líneas

seaborn.relplot(kind = 'line',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2')

Más funcionalidades:

Es posible que haya notado que en todas las funciones de trazado hemos estado usando un máximo de dos variables por gráfico, pero ¿qué pasa si queremos introducir más variables en nuestra visualización? Afortunadamente, Seaborn se encargó de eso:

Matiz:

  • Usando hue podemos introducir una 3ra variable que es categórica a nuestra visualización usando codificación de color, significa que los puntos de datos que pertenecen a la misma categoría de esta 3ra variable tendrán el mismo color.

Tono

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                hue  = 'variable_3')

Tamaño:

  • El tamaño es similar al tono, pero utiliza la codificación de tamaño en lugar de la codificación de color. Significa que los puntos de datos que pertenecen a la misma categoría de la tercera variable tendrán el mismo tamaño único. Diferentes tamaños significan diferentes categorías.

Tamaño

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                size = 'variable_3',
                sizes = [50, 100])

Estilo:

  • Más o menos lo mismo que Tono y Tamaño, significa que los puntos de datos que pertenecen a la misma categoría de la tercera variable tendrán el mismo estilo único. Un estilo de punto puede ser un punto, una estrella, una cruz, un triángulo,… los llamamos marcadores.

Estilo

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                style = 'variable_3',
                markers = ['X', '*'])

También podemos introducir una nueva variable categórica usando parcelas múltiples, cada parcela pertenece a una categoría de la variable categórica cate:

Columna:

Creará muchas figuras horizontalmente con respecto a las categorías de la 3ra variable.

Col

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                col  = 'variable_3')

Fila:

Creará muchas figuras verticalmente con respecto a las categorías de la 3ra variable.

Fila

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                row  = 'variable_3')

¡También podemos usar Tono y Tamaño en el mismo gráfico, para representar 4 variables, o incluso Tono y Estilo y Col, para usar 5 variables en el mismo gráfico! Podemos usar hasta 7 variables (variable 1, variable 2, Tono, Tamaño, Estilo, Col, Fila) en la misma gráfica, pero nos dará una gráfica muy cargada que es tan desordenada y extremadamente difícil de interpretar, a veces no informativa en absoluto.

Tono y tamaño

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                hue  = 'variable_3',
                size = 'variable_4')

Conclusión:

En esta publicación, aprendimos sobre seaborn, sus 3 categorías de funciones gráficas: gráficas categóricas, de distribución y relacionales, y explicamos cada función gráfica para cada categoría, todo junto con el código Python.

Consulte nuestro Campamento intensivo de ciencia de datos para obtener más información sobre este tema.


Career Services background pattern

Servicios profesionales

Contact Section background image

Mantengámonos en contacto

Code Labs Academy © 2024 Todos los derechos reservados.