• 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
  • Laboratorio
    • Estadística
      • Calculadora del Tamaño Muestral en Encuestas
      • Calculadora de estadísticos descriptivos
      • Test de normalidad
      • Calculadora de contrastes de hipotesis
      • Calculadora de tamano del efecto
      • Simulador de Regresión Lineal con Ruido
      • Visualizador de PCA
      • Visualizador de Series Temporales
      • Simulador de Regresión Logística
      • Simulador de K-Means
      • Simulador de DBSCAN
      • Detector de la Ley de Benford
    • Probabilidad
      • Calculadora de Probabilidad de Distribuciones
      • Calculadora de Probabilidades de Lotería
      • Simulador del Problema de Monty Hall
      • Simulador de la Estrategia Martingala
    • Finanzas
      • Calculadora de Préstamos e Hipotecas
      • Conversor TIN ↔ TAE
      • Calculadora DCA con ajuste por inflación
      • Simulador FIRE (Financial Independence, Retire Early)
    • Herramientas
      • Formateador / Minificador de JSON
      • Comparador y Formateador de Texto y JSON
      • Formateador y Tester de Expresiones Regulares
      • Inspector de JWT
      • Generador y verificador de hashes
      • Codificador / Decodificador Base64 y URL
      • Conversor de bases numericas
      • Conversor de Timestamp Unix
      • Conversor de colores
      • Generador de UUIDs
    • Juegos
      • Tres en Raya
      • Nim con Q-Learning
    • Más
      • Método D’Hondt
      • Generador de Contraseñas Seguras
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad

Analytics Lane

Ciencia e ingeniería de datos aplicada

  • Ciencia de datos
  • Machine Learning
  • IA Generativa
  • Python
  • Pandas
  • NumPy
  • R
  • Excel

Gráficos de densidad: alternativa a los gráficos de dispersión en Python

marzo 27, 2023 Por Daniel Rodríguez Deja un comentario
Tiempo de lectura: 4 minutos

Gráfico de densidad con relleno y escala de colores para el conjunto de 500 datos

En una publicación anterior se vieron algunos de los problemas que muestran los gráficos de dispersión cuando se cuentan con grandes conjuntos de datos, proponiendo en aquella ocasión el uso de los gráficos de Hexbin como alternativa. Otros gráficos que se pueden emplear en estas situaciones son los gráficos de densidad. Unos gráficos en los que se dibujan los contornos en los que la densidad es igual, los cuales se pueden ilustrar con una escala de colores, mostrando de esta forma las áreas donde la densidad de datos es similar.

Gráficos de densidad en Python con Seaborn

Para crear un gráfico de densidad en Python se puede usar la librería Seaborn, en la cual se puede encontrar la función kdeplot(). Antes de crear uno de estos gráficos se puede recordar el problema que presentan los gráficos de dispersión cuando el conjunto de datos es demasiado grande. Para lo que se puede usar el código similar al hablar de los gráficos de Hexbin.

import numpy as np
import matplotlib.pyplot as plt

# Generar datos aleatorios
np.random.seed(1)
x = np.dot(np.random.random(size = (2, 2)), np.random.normal(size = (2, 500))).T

# Crear el gráfico de dispersión
plt.scatter(x[:, 0], x[:, 1])

# Mostrar el gráfico
plt.show()
Gráfico de dispersión para un conjunto de 500 datos
Gráfico de dispersión para un conjunto de 500 datos

En este ejemplo primero se ha generado un conjunto de datos aleatorios con 500 registros y creado una gráfica de dispersión con ellos. Tal como se puede apreciar en la gráfica, en las zonas donde la densidad de datos es alta los puntos se superponen, lo que puede dar lugar a confusión. Una alternativa en este caso es crear un gráfico de densidad tal como se muestra a continuación.

Nuevo simulador FIRE en el laboratorio de aplicaciones de Analytics Lane
En Analytics Lane
Nuevo simulador FIRE en el laboratorio de aplicaciones de Analytics Lane

import seaborn as sns

# Crear gráfico de densidad
sns.kdeplot(x=x[:, 0], y=x[:, 1])
Gráfico de densidad con el conjunto de 500 datos de la figura anterior
Gráfico de densidad con el conjunto de 500 datos de la figura anterior

Un código en el que solamente se ha importado Seaborn y llamado a la función kdeplot() con los datos para los ejes. La gráfica resultante muestra una serie de líneas que representan zonas de igual densidad. Pudiendo apreciar más claramente cómo se reparte esta.

Relleno de las zonas de densidad con una escala de colores

La función kdeplot() de Seaborn cuenta con la propiedad fill que se puede utilizar para indicar si se desea que las zonas se rellene con una escala de colores. Por defecto, como se ha visto en la sección anterior, no se rellena las zonas. Para conseguir que estas se rellenen solamente se debe asignar el valor True a la propiedad.

# Crear gráfico de densidad com relleno
sns.kdeplot(x=x[:, 0], y=x[:, 1], fill=True, cbar=True)
Gráfico de densidad con relleno y escala de colores para el conjunto de 500 datos
Gráfico de densidad con relleno y escala de colores para el conjunto de 500 datos

Cuando se usa una escala de colores para rellenar las zonas de igual densidad puede ser interesante cambiar el valor de la propiedad cbar para indicar que se muestre la escala de colores. Lo que puede ser de gran ayuda para interpretar mejor los datos. Esto es lo que se muestra en el siguiente código.

Como resultado se obtiene una gráfica en la que se puede ver claramente que en la zona central la densidad de puntos está en torno a 1.2 y cuáles son los valores en cada una de las zonas.

Publicidad


Ventajas de los gráficos de densidad

Los gráficos de densidad cuentan con algunas ventajas respeto a los gráficos de hexbin y dispersión para algunos conjuntos de datos tales como:

  1. Mejor visualización de la distribución: los gráficos de densidad permiten visualizar la distribución de una variable unidimensional de manera más clara que los gráficos de hexbin y dispersión. Mientras que los gráficos de hexbin y dispersión pueden ser útiles para identificar patrones en datos bidimensionales, el gráfico de densidad permite visualizar la distribución de una variable en su totalidad.
  2. Ofrece más información a la hora de comparar distribuciones: El gráfico de densidad también es útil para comparar la distribución de dos o más variables. Mientras que los gráficos de hexbin y dispersión se centran en la relación entre dos variables, el gráfico de densidad permite comparar la distribución de varias variables en un solo figura.
  3. Menor probabilidad de sobreexplotación: en los conjuntos de datos con una alta densidad de puntos las gráficas de dispersión pueden sufrir de sobreexplotación, lo que se traduce una mayor dificultad a la hora de interpretar los patrones. Por otro lado, los gráficos de densidad pueden mostrar de manera clara conjunto de datos grandes o con alta densidad de puntos.

Conclusiones

Los gráficos de densidad son una herramienta para la visualización de datos que puede ser de gran ayuda cuando los gráficos de dispersión no son suficientemente precisos. Ofreciendo una mejor interpretación de la distribución de los valores en un plano.

¿Te ha parecido de utilidad el contenido?

¡Puntúalo entre una y cinco estrellas!

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

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

  • Nuevo simulador FIRE en el laboratorio de aplicaciones de Analytics Lane
  • Nueva calculadora de préstamos e hipotecas en el laboratorio de aplicaciones de Analytics Lane
  • Hardening avanzado de NGINX: CSP, OCSP Stapling y defensa en profundidad
  • Nuevo generador y verificador de hashes en el laboratorio de aplicaciones de Analytics Lane
  • Nueva simulación de la estrategia Martingala en ruleta en el laboratorio de aplicaciones de Analytics Lane
  • Exactitud, precisión, recall… y los errores que cometemos al interpretarlas en proyectos reales
  • Nuevo simulador del problema de Monty Hall en el laboratorio de aplicaciones de Analytics Lane
  • Nuevo simulador interactivo de K-Means en el laboratorio de aplicaciones de Analytics Lane
  • Por qué los chatbots de inteligencia artificial parecen estar siempre de acuerdo contigo – Conversar con una inteligencia artificial – Parte I

Publicado en: Python Etiquetado como: Matplotlib, Seaborn

Interacciones con los lectores

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.

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
  • Bluesky
  • Facebook
  • GitHub
  • Instagram
  • Mastodon
  • Pinterest
  • RSS
  • Telegram
  • Tumblr
  • Twitter
  • YouTube

Publicidad

Entradas recientes

Nuevo Inspector de JWT en el laboratorio de aplicaciones de Analytics Lane

abril 20, 2026 Por Daniel Rodríguez

Nuevo simulador de regresión logística en el laboratorio de aplicaciones de Analytics Lane

abril 17, 2026 Por Daniel Rodríguez

Nuevo simulador de regresión lineal con ruido en el laboratorio de aplicaciones de Analytics Lane

abril 16, 2026 Por Daniel Rodríguez

Publicidad

Es tendencia

  • Nuevo Inspector de JWT en el laboratorio de aplicaciones de Analytics Lane publicado el abril 20, 2026 | en Noticias
  • Creación de gráficos de barras y gráficos de columnas con Seaborn publicado el julio 18, 2023 | en Python
  • Cómo calcular el tamaño de la muestra para encuestas publicado el septiembre 9, 2025 | en Ciencia de datos
  • Inclusión de barras de error en Matplotlib publicado el octubre 17, 2022 | en Python
  • El método de Muller e implementación en Python publicado el marzo 24, 2023 | en Ciencia de datos

Publicidad

Lo mejor valorado

4.9 (24)

Seleccionar filas y columnas en Pandas con iloc y loc

4.6 (16)

Archivos JSON con Python: lectura y escritura

4.4 (14)

Ordenación de diccionarios en Python mediante clave o valor

4.7 (13)

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

4.9 (11)

Pandas: Cambiar los tipos de datos en los DataFrames

Comentarios recientes

  • M. Pilar en Cómo eliminar las noticias en Windows 11 y recuperar tu concentración
  • Daniel Rodríguez en Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • Pepe en Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • CARLOS ARETURO BELLO CACERES en Justicio: La herramienta gratuita de IA para consultas legales
  • Piera en Ecuaciones multilínea en Markdown

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-2026 Analytics Lane ·Términos y condiciones ·Política de Cookies ·Política de Privacidad ·Herramientas de privacidad ·Contacto