• 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
    • Encuestas: Tamaño de Muestra
    • Lotería: Probabilidad de Ganar
    • Reparto de Escaños (D’Hondt)
    • Tres en Raya con IA
  • 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
  • IA Generativa
  • Python
  • Pandas
  • NumPy
  • Excel
  • Matlab

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

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

Gráfico de Hexbin para el conjunto de 3000 datos

Los gráficos de dispersión son uno de los más utilizados para representar cómo se distribuyen los valores de un conjunto de datos en un plano. Son fáciles de crear y sencillos de interpretar. Aunque, cuando el conjunto de datos cuenta con centenas de registros, los gráficos de dispersión pueden ser demasiado densos para interpretarlos. En esta situación una alternativa es utilizar un gráfico de Hexbin.

Los gráficos de Hexbin

Un gráfico de Hexbin es un tipo de visualización de datos que se puede utilizar para representar la distribución de puntos en un plano. A diferencia de los gráficos de dispersión, en lugar de representar cada uno de los puntos de forma individual, los puntos se agrupan en hexágonos regulares con los que se cubre todo el plano. La densidad de puntos en cada hexágono se representa mediante una escala de colores, permitiendo visualizar las zonas donde hay mayor o menor concentración de datos. El detalle del gráfico se puede ajustar cambiando el tamaño de los hexágonos.

Los gráficos de Hexbin son particularmente útiles cuando se trabaja con conjuntos de datos muy grandes, ya que pueden resumir una gran cantidad de información en una sola figura fácil de interpretar.

Publicidad


Ventajas de los gráficos de Hexbin

Algunas de las ventajas de los gráficos de hexbin frente a los gráficos de dispersión son:

Curiosidad: La maldición de la dimensionalidad, o por qué añadir más datos puede empeorar tu modelo
En Analytics Lane
Curiosidad: La maldición de la dimensionalidad, o por qué añadir más datos puede empeorar tu modelo

  1. Facilitan la interpretación en grandes conjuntos de datos: los gráficos de dispersión que se crean con grandes conjuntos de datos pueden ser demasiados densos, por lo que no son fáciles de interpretar. Los gráficos de hexbin resuelven este problema reduciendo la complejidad visual al representar los datos mediante una cuadrícula de hexágonos.
  2. Mayor precisión: los gráficos de hexbin permiten una mayor precisión al mostrar la distribución de puntos. Cada hexágono representa una zona determinada del espacio bidimensional, lo que significa que se pueden capturar patrones más sutiles y precisos que en los gráficos de dispersión tradicionales.
  3. Evita la superposición de valores: en los gráficos de dispersión los puntos se pueden superponer, ocultando de esta manera parte de la información que se desea mostrar. Por su parte, en los gráficos de hexbin, los hexágonos se superponen de manera regular evitando de esta manera la superposición de los datos.

Comparar los gráficos de dispersión y Hexbin en Python

La mejor manera de ver las ventajas que tienen los gráficos de Hexbin cuando se necesita representar grandes conjuntos de datos es crear unos valores aleatorios y representar ambos en Python. Así, se puede emplear el siguiente código para crear el conjunto de datos y una gráfica de dispersión con ellos.

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, 3000))).T

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

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

En este ejemplo se ha fijado la semilla a 1 y creado un conjunto de 3000 de registros aleatorios con np.random.random(). Una vez hecho se representan mediante un gráfico de dispersión. A pesar de que el conjunto de datos no es excesivamente grande, solamente 500 puntos, ya se puede apreciar una superposición en de los datos que pueden crear confusión.

Para crear un gráfico de Hexbin en Python se puede recurrir a la función hexbin() de Matplotlib. Necesitando los mismos datos que la función scatter(), aunque es recomendable indicar el tamaño de los hexágonos para que la gráfica se adapte a nuestra necesidades, esto es lo que se hace en el siguiente código.

# Crear el gráfico de Hexbin
plt.hexbin(x[:, 0], x[:, 1], gridsize=20, cmap='Blues')

# Mostrar el gráfico
plt.show()
Gráfico de Hexbin para el conjunto de 3000 datos
Gráfico de Hexbin para el conjunto de 3000 datos

Empleando dos opciones gridsize para indicar el tamaño de los hexágonos y cmap para los colores que se desean usar. Como se puede ver en este ejemplo los datos son más fáciles de interpretar en esta segunda figura.

Publicidad


Mejorando la gráfica: añadir una escala de colores

Aunque la gráfica anterior es más fácil de interpretar, no se puede saber fácilmente cual es la densidad en cada uno de los hexágonos. Un problema que se puede solucionar fácilmente agregando la escala de colores. Para lo que se puede recurrir la función colorbar() Matplotlib que únicamente necesita la salida de la función hexbin(). De este modo, con una pequeña modificación del código, se puede comprobar a que valores se corresponde cada uno de los colores.

# Crear el gráfico de Hexbin
hb = plt.hexbin(x[:, 0], x[:, 1], gridsize=20, cmap='Blues')

# Agregar la escala de color
plt.colorbar(hb)

# Mostrar el gráfico
plt.show()
Inclusión de un escala de colores en el gráfico de Hexbin
Inclusión de un escala de colores en el gráfico de Hexbin

Ahora se puede ver como los colores más oscuros indica más de 80 puntos en cada uno de los hexágonos

Conclusiones

Los gráficos de hexbin son una excelente alternativa a los gráficos de dispersión cuando se trabaja con conjuntos de datos de tamaño mediano o grande. Siendo una forma eficaz de mostrar la distribución de datos en un espacio bidimensional, permitiendo una mejor comprensión de la distribución y patrones de los datos en comparación con los gráficos de dispersión.

¿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?

Publicidad


Publicaciones relacionadas

  • Curiosidad: La maldición de la dimensionalidad, o por qué añadir más datos puede empeorar tu modelo
  • ¿Está concentrado el MSCI World? Un análisis con Gini, Lorenz y leyes de potencia
  • Curiosidad: ¿Por qué usamos p < 0.05? Un umbral que cambió la historia de la ciencia
  • Programador de tareas de Windows: Guía definitiva para automatizar tu trabajo (BAT, PowerShell y Python)
  • La Paradoja del Cumpleaños, o por qué no es tan raro compartir fecha de nacimiento
  • Cómo abrir una ventana de Chrome con tamaño y posición específicos desde la línea de comandos en Windows
  • Curiosidad: El sesgo de supervivencia, o por qué prestar atención sólo a los que “llegaron” puede engañarte
  • Documentar tu API de Express con TypeScript usando OpenAPI (Swagger)
  • Data Lake y Data Warehouse: diferencias, usos y cómo se complementan en la era del dato

Publicado en: Python Etiquetado como: Matplotlib

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

Data Lake y Data Warehouse: diferencias, usos y cómo se complementan en la era del dato

octubre 23, 2025 Por Daniel Rodríguez

Documentar tu API de Express con TypeScript usando OpenAPI (Swagger)

octubre 21, 2025 Por Daniel Rodríguez

Curiosidad: El sesgo de supervivencia, o por qué prestar atención sólo a los que “llegaron” puede engañarte

octubre 16, 2025 Por Daniel Rodríguez

Publicidad

Es tendencia

  • Hoja de cálculo para repartir los escaños en base al método D’Hont Aplicar el método D’Hondt en Excel publicado el abril 14, 2021 | en Herramientas
  • Cómo solucionar problemas de red en VirtualBox: Guía completa publicado el junio 11, 2025 | en Herramientas
  • Cómo calcular el tamaño de la muestra para encuestas publicado el septiembre 9, 2025 | en Ciencia de datos
  • La tabla de la web finalmente importada en Excel Importar tablas desde la web en Excel publicado el octubre 21, 2020 | en Herramientas
  • Diferencias entre CPU, GPU, TPU y NPU publicado el abril 19, 2023 | en Herramientas

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.5 (10)

Diferencias entre var y let en JavaScript

Publicidad

Comentarios recientes

  • 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
  • Daniel Rodríguez en Tutorial de Mypy para Principiantes

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