El promedio de salarios en una empresa es $800.000. Suena razonable. Pero si graficas la distribución, descubres que la mayoría gana entre $400.000 y $600.000, y un grupo pequeño de ejecutivos gana más de $2.000.000. El promedio miente — el histograma no.
¿Qué es un histograma?
Un histograma agrupa valores numéricos continuos en rangos (llamados bins) y muestra cuántos datos caen en cada rango. A diferencia de un gráfico de barras, que compara categorías, el histograma muestra la forma de los datos: dónde se concentran, qué tan dispersos están, y si hay grupos separados.
Crear un histograma
import matplotlib.pyplot as plt
edades = [22, 25, 27, 28, 30, 31, 32, 33, 35, 36,
37, 38, 40, 42, 45, 48, 50, 55, 60, 65]
plt.hist(edades, edgecolor='black')
plt.title('Distribución de edades')
plt.xlabel('Edad')
plt.ylabel('Frecuencia')
plt.show()
plt.hist() divide automáticamente el rango de datos en 10 bins y cuenta cuántos valores caen en cada uno.
Controlar el número de bins
El número de bins cambia lo que revela el histograma:
import matplotlib.pyplot as plt
edades = [22, 25, 27, 28, 30, 31, 32, 33, 35, 36,
37, 38, 40, 42, 45, 48, 50, 55, 60, 65]
plt.hist(edades, bins=5, edgecolor='black', color='#6c5ce7')
plt.title('Distribución de edades (5 bins)')
plt.xlabel('Edad')
plt.ylabel('Frecuencia')
plt.show()
| Bins | Efecto |
|---|---|
| Pocos (5-7) | Muestra la forma general, pierde detalle |
| Medios (10-15) | Buen balance para la mayoría de los datos |
| Muchos (30+) | Muestra mucho detalle, puede generar ruido |
No hay un número "correcto" universal. Prueba distintos valores y elige el que muestre la historia más clara.
Qué buscar en un histograma
Forma simétrica: los datos se concentran en el centro con colas iguales a cada lado. Ejemplo: estaturas de personas adultas.
Sesgo a la derecha: la mayoría de los datos está a la izquierda, con una cola larga a la derecha. Ejemplo: ingresos (muchas personas ganan poco, pocas ganan mucho).
Bimodal: dos picos separados. Ejemplo: notas de un curso donde un grupo estudió y otro no.
Uniforme: todas las barras tienen altura similar. Ejemplo: resultados de lanzar un dado muchas veces.
Comparar dos distribuciones
import matplotlib.pyplot as plt
grupo_a = [45, 50, 52, 55, 58, 60, 62, 65, 68, 70, 72, 75]
grupo_b = [30, 35, 40, 42, 45, 48, 50, 55, 60, 65, 80, 85]
plt.hist(grupo_a, bins=8, alpha=0.6, label='Grupo A', color='#0984e3', edgecolor='black')
plt.hist(grupo_b, bins=8, alpha=0.6, label='Grupo B', color='#e17055', edgecolor='black')
plt.title('Distribución de notas por grupo')
plt.xlabel('Nota')
plt.ylabel('Frecuencia')
plt.legend()
plt.show()
alpha=0.6 hace los histogramas semitransparentes para que puedas ver ambos superpuestos.
Errores frecuentes
Confundir histograma con gráfico de barras: un gráfico de barras compara categorías (frutas, países). Un histograma muestra la distribución de una variable continua (edades, salarios). Las barras del histograma están pegadas porque representan rangos continuos.
Confiar solo en el promedio: nunca reportes solo el promedio sin visualizar la distribución. Dos conjuntos de datos con el mismo promedio pueden tener distribuciones completamente distintas.
Usar pocos datos: con menos de 20 o 30 datos, el histograma puede ser engañoso. Necesitas suficientes datos para que la forma sea representativa.
Aprende haciendo, no solo leyendo
Leer es el primer paso. El verdadero aprendizaje ocurre cuando practicas con ejercicios reales de Visualización de Datos y recibes corrección inmediata de IA.
Comenzar gratis →