• Saltar al contenido principal
  • Skip to secondary menu
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Inicio
  • Secciones
    • Ciencia de datos
    • Criptografía
    • Herramientas
    • Machine Learning
    • Noticias
    • Opinión
    • Productividad
    • Programación
      • JavaScript
      • Julia
      • Matlab
      • Python
      • R
  • Programación
    • JavaScript
    • Julia
    • Matlab
    • Python
    • R
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad
    • Tiendas afiliadas
      • AliExpress
      • Amazon
      • Banggood
      • GeekBuying
      • Lenovo

Analytics Lane

Ciencia e ingeniería de datos aplicada

  • Ciencia de datos
  • Machine Learning
  • Python
  • Pandas
  • NumPy
  • Matlab
  • Julia
  • JavaScript
  • Excel

Visualización de datos en Python con Seaborn

julio 20, 2018 Por Daniel Rodríguez 3 comentarios
Tiempo de lectura: 6 minutos

Seaborn es una librería para Python que permite generar fácilmente elegantes gráficos. Seaborn esta basada en matplotlib y proporciona una interfaz de alto nivel que es realmente sencilla de aprender. Dada su gran popularidad se encuentra instalada por defecto en la distribución Anaconda.

La representación de datos es una tarea clave del análisis de datos. La utilización de una gráfica adecuada puede hacer que los resultados y conclusiones se comuniquen de una forma adecuada o no. Conocer y manejar diferentes herramientas es clave para poder seleccionar la gráfica adecua en cada ocasión. En esta entrada se va a repasar básicamente las funciones que ofrece la librería Seaborn.

Importación de los datos

Para utilizar la librería Seaborn en primer lugar se han de cargar un conjunto de datos. Para ello se puede utilizar el conjunto de datos de propinas que se encuentra en la propia librería. Para ello se ha de importar el método load_dataset y cargar el conjunto de datos 'tips'. En este conjunto de datos observar diferentes registros de propinas en los que se encuentra la factura total, la propina, el genero del cliente, si es fumador o no, el día de la semana, la franja horaria y el número de comensales. El código para necesario para la importación y los primeros 5 registros se muestran a continuación.

from seaborn import load_dataset

tips = load_dataset("tips")
tips.head()
total_billtipsexsmokerdaytimesize
16.991.01FemaleNoSunDinner2
10.341.66MaleNoSunDinner3
21.013.50MaleNoSunDinner3
23.683.31MaleNoSunDinner2
24.593.61FemaleNoSunDinner4

Gráfico de dispersión con Seaborn

Uno de los primeros gráficos que se pueden realizar con estos datos es un gráfico de dispersión. Mediante el cual se puede ver la relación entre dos variables como puede ser la factura y la propina. Este tipo de gráfico se puede obtener mediante el método lmplot al que se le ha de indicar la característica para el cada uno de los ejes y el conjunto de datos. Un ejemplo y el resultado se muestra a continuación:

from seaborn import lmplot

lmplot('total_bill', 'tip', data=tips, fit_reg=False)
Gráfico de dispersión

En el ejemplo se puede ver una opción fit_reg a la que se ha asignado el valor falso, esto es necesario dado que por defecto realiza la regresión lineal. en caso de que este sea el tipo de gráfico deseado simplemente se ha de omitir esta opción, como en el siguiente ejemplo.

Publicidad


lmplot('total_bill', 'tip', data=tips)
Gráfico de dispersión con intervalo de confianza

La gráfica así obtenida incluye además de los datos incluye la regresión lineal y el intervalo de confianza. El intervalo de confianza se puede fijar con la propiedad ci, pudiendo indicar el intervalo deseado o None para que se omita. Esta ultima opción es la que se muestra a continuación.

lmplot('total_bill', 'tip', data=tips, ci=None)
Gráfico de dispersión con regresión


Una característica interesante se lmplot es la posibilidad de representar más de una regresión a la vez. Para ello solamente se le ha de utilizar la propiedad hue a la que le ha de indicar el nombre de la columna de dataframe que se desea utilizar para separar. Por ejemplo, se puede comprobar si el comportamiento de los fumadores y no fumadores es diferente.

lmplot(x="total_bill", y="tip", hue="smoker", data=tips)
Múltiples regresiones con seaborn


Donde se puede apreciar el comportamiento de ambos es ligeramente diferente.

Diagrama de desinad

Los diagramas de densidad se pueden utilizar para ver cómo se comporta distribuciones de datos. En Seaborn este tipo de diamgramas se puede obtener con el método kdeplot. En el conjunto de datos de ejemplo puede ser de interés comprobar cómo se distribuye los valores de la factura, para lo que se puede utilizar el siguiente ejemplo.

from seaborn import kdeplot

kdeplot(tips.total_bill)
Diagrama de densidad

Este tipo de gráficas también se puede obtener en dos dimensiones, para lo que solamente se ha de inyectar dos columnas de datos en la función. Por ejemplo, para ver la distribución de propinas y la factura se puede conseguir con:

Publicidad


kdeplot(tips.tip, tips.total_bill)
Diagrama de densidad 2D

Histograma

Otra forma de representar distribuciones de datos es mediante la utilización de histogramas. Para conseguir este tipo de figuras se puede utilizar el método distplot. El cual se usa prácticamente igual que el anterior.

from seaborn import distplot

distplot(tips.total_bill)
Histograma con gráfico de densidad con seaborn

Si no se desea que el histograma incluya también el diagrama de desinad se ha de indicar asignando el valor falso a la opción kde. Esto es lo que se muestra a continuación:

distplot(tips.total_bill, kde=False)
Histograma con seaborn

Alternativamente lo que puede eliminar es el histograma configurando la opción hist a falso.

distplot(tips.total_bill, hist=False
Gráfico de densidad con seaborn

distplot permite agregar también un gráfico de alfombra, para lo que se ha inyectar el valor true a la propiedad rug. Siendo aconsejable eliminar la opción del histograma en este caso.

distplot(tips.total_bill, rug=True, hist=False)
Gráfico de alfombra con seaborn

Finalmente se puede hacer el gráfico vertical, para lo que se ha de propiedad vertical ha de ser verdadera.

Publicidad


distplot(tips.total_bill, vertical=True)
Histograma vertical con gráfico de densidad con seaborn

Boxplot

La dispersión de datos se puede comprobar también mediante los gráficos de tipo boxplot. Lo que se pueden obtener mediante el método boxplot, en su versión más sencilla solamente se ha de introducir la columna con los datos a representar.

from seaborn import boxplot

boxplot(tips.total_bill)
Boxplot vertical con seaborn

La orientación horizontal puede no ser del gusto de muchos usuarios, para que la representación sea vertical simplemente se ha mediante la propiedad orient.

boxplot(tips.total_bill, orient="v")
Boxplot con seaborn

Representar más de una gráfico tipo boxplot permite comparar la dispersión de los datos al poder ver los resultados de forma conjunta. Al igual que el los gráficos de es posible indicar una columna en base a la que dividir los datos de un dataframe. Este comportamiento se puede conseguir indicando un dataframe y el nombre de una columna para el eje x y otra para el y.

boxplot(x="sex", y="total_bill", data=tips)
Varios Boxplot con seaborn

De forma análoga a los gráficos de dispersión en serabon también se puede dividir las gráficas boxplot en base una tercera columna. Así es posible poder analizar el comportamiento de más de un conjunto de datos. Para ello se ha de utilizar la propiedad hue.

boxplot(x="sex", y="total_bill", hue="smoker", data=tips)
Varios Boxplot con seaborn

Violin

serabon también incluye los gráficos de tipo violín como alternativa a los boxplot. Esto se utilizan se generan con el método violinplot y su funcionamiento es exactamente igual a los anteriores. Por ejemplo, se puede reproducir el ultimo análisis realizado con esta nueva figura.

Publicidad


from seaborn import violinplot

violinplot(x="sex", y="total_bill", hue="smoker", data=tips)
Varios gráficos de violin con seaborn

Conclusiones

En esta entrada se han visto los tipos de gráficos más importantes que existen en la librería serabon. Una librería que permite obtener fácilmente elegantes representaciones de conjuntos de datos en Python.

El listado completo de las gráficas disponibles en Seaborn se puede consultar en la documentación de la propia librería.

¿Te ha parecido de utilidad el contenido?

¡Puntúalo entre una y cinco estrellas!

Puntuación promedio 5 / 5. Votos emitidos: 6

Ya que has encontrado útil este contenido...

¡Síguenos en redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Publicaciones relacionadas

  • Análisis de sentimientos con NLTK en Python
    Análisis de sentimientos con NLTK en Python
  • Trucos y consejos para optimizar la velocidad en Seaborn
    Trucos y consejos para optimizar la velocidad en Seaborn
  • Visualización de datos categóricos en Seaborn
    Visualización de datos categóricos en Seaborn
  • Generar líneas y áreas arbitrarias en Matplotlib
    Generar líneas y áreas arbitrarias en Matplotlib
  • Creación de gráficos de barras y gráficos de columnas con Seaborn
    Creación de gráficos de barras y gráficos de columnas con…
  • Gráficos de contorno en Seaborn: Representación de distribuciones conjuntas y estimaciones de densidad
    Gráficos de contorno en Seaborn: Representación de…

Publicado en: Python Etiquetado como: Seaborn

Interacciones con los lectores

Comentarios

  1. egilda dice

    marzo 5, 2021 a las 12:42 am

    Excelente presentación muy ameno el aprendizaje

    Responder
  2. Angie CP dice

    abril 20, 2021 a las 9:10 am

    ¡Muchas gracias! He revisado demasiados foros, webs, videos jeje y ninguno me había explicado tan bien. 🥺

    Responder
  3. Cristina dice

    julio 26, 2022 a las 6:57 pm

    Excelente artículo! Me ayudo mucho!

    Responder

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

I accept the Terms and Conditions and the Privacy Policy

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Publicidad




Barra lateral principal

Suscríbete a nuestro boletín

Suscríbete al boletín semanal para estar al día de todas las publicaciones.

Política de Privacidad

Analytics Lane en redes sociales

  • Amazon
  • Facebook
  • GitHub
  • Instagram
  • Pinterest
  • RSS
  • Twitter
  • Tumblr
  • YouTube

Publicidad

Entradas recientes

El método de Hare-Niemeyer y su implementación en Python

septiembre 29, 2023 Por Daniel Rodríguez

Redimensionar una partición de disco LVM con espacio no asignado en Linux

septiembre 27, 2023 Por Daniel Rodríguez

¿Cómo saber la versión de Pandas o cualquier otra librería en Python?

septiembre 25, 2023 Por Daniel Rodríguez

Publicidad

Es tendencia

  • Unir y combinar dataframes con pandas en Python publicado el septiembre 10, 2018 | en Python
  • ¿Cómo cambiar el nombre de las columnas en Pandas? publicado el mayo 6, 2019 | en Python
  • Enviar mensajes de WhatsApp con Python publicado el marzo 7, 2022 | en Python
  • Sistema de ecuaciones Sistemas de ecuaciones lineales con numpy publicado el octubre 29, 2018 | en Python
  • Ecuaciones multilínea en Markdown publicado el septiembre 14, 2022 | en Herramientas

Publicidad

Lo mejor valorado

4.9 (22)

Seleccionar filas y columnas en Pandas con iloc y loc

4.7 (12)

Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas

4.6 (15)

Archivos JSON con Python: lectura y escritura

4.5 (10)

Diferencias entre var y let en JavaScript

4.3 (12)

Ordenación de diccionarios en Python mediante clave o valor

Publicidad

Comentarios recientes

  • Daniel Rodríguez en ¿Cómo eliminar columnas y filas en un dataframe pandas?
  • Miguel en ¿Cómo eliminar columnas y filas en un dataframe pandas?
  • alberto en Resolver problema de credenciales en Bitbucket
  • Pablo en Aplicar el método D’Hondt en Excel
  • Agapito en Creación de un EXE desde un archivo Python en Windows

Publicidad

Footer

Analytics Lane

  • Acerca de Analytics Lane
  • Boletín de noticias
  • Contacto
  • Libros
  • Lo más popular
  • Noticias
  • Tienda
  • Tiendas afiliadas

Secciones

  • Ciencia de datos
  • Criptografía
  • Herramientas
  • Machine Learning
  • Opinión
  • Productividad
  • Programación
  • Reseñas

Sobre de Analytics Lane

En Analytics Lane tratamos de explicar los principales conceptos de la ciencia e ingeniería de datos con un enfoque práctico. Los principales temas tratados son ciencia de datos, ingeniería de datos, inteligencia artificial, machine learning, deep learning y criptografía. Además, también se habla de los principales lenguajes de programación y herramientas utilizadas por los científicos e ingenieros de datos.

Copyright © 2018-2023 Analytics Lane ·Términos y condiciones ·Política de Cookies ·Política de Privacidad ·Herramientas de privacidad ·Contacto