Un histograma representa la distribución de una variable cuantitativa mediante intervalos contiguos. Permite observar concentración, dispersión, asimetría y posibles valores atípicos.
Una lista de tiempos, temperaturas o longitudes puede contener muchos valores diferentes. Para comprender cómo se distribuyen, podemos agruparlos en intervalos y contar cuántas observaciones pertenecen a cada uno.
El histograma representa esos intervalos mediante barras contiguas. El eje horizontal conserva la escala numérica y el eje vertical expresa frecuencia, proporción o densidad.
Se utiliza para explorar la distribución de una variable cuantitativa, especialmente si es continua o posee muchos valores distintos.
No se utiliza para categorías nominales como navegador o país. Para ellas corresponde un gráfico de barras.
Retomamos los 30 tiempos de respuesta, en milisegundos, utilizados en temas anteriores:
El mínimo es 72 ms, el máximo es 348 ms y el rango es 276 ms.
Dividimos el eje numérico en intervalos que no se superponen. Con una amplitud de 50 ms:
La notación [100, 150) incluye 100 y excluye 150. Así, cada valor ubicado en un límite pertenece a una sola clase.
Antes de dibujar el histograma, construimos la distribución:
| Intervalo (ms) | Frecuencia | Porcentaje |
|---|---|---|
| [50, 100) | 4 | 13,33% |
| [100, 150) | 9 | 30,00% |
| [150, 200) | 7 | 23,33% |
| [200, 250) | 5 | 16,67% |
| [250, 300) | 3 | 10,00% |
| [300, 350) | 2 | 6,67% |
| Total | 30 | 100,00% |
Los intervalos representan partes contiguas de una escala numérica. Una clase termina donde comienza la siguiente; por eso no se deja espacio entre las barras.
En un gráfico de barras categórico, la separación indica categorías independientes. Esta diferencia visual refleja una diferencia en la naturaleza de los datos.
Con clases de igual amplitud, la altura puede representar frecuencia absoluta o relativa. La forma general será la misma.
Si las amplitudes son diferentes, la altura debe representar densidad de frecuencia:
De esta manera, el área de cada barra —y no su altura aislada— representa la frecuencia.
Un histograma permite describir visualmente distintas formas:
| Forma | Descripción |
|---|---|
| Aproximadamente simétrica | Ambos lados tienen una extensión y frecuencia parecidas. |
| Asimétrica a la derecha | La cola se extiende hacia valores altos. |
| Asimétrica a la izquierda | La cola se extiende hacia valores bajos. |
| Uniforme | Las clases presentan frecuencias similares. |
| Bimodal | Aparecen dos concentraciones o picos principales. |
La forma observada depende de la muestra y de los intervalos. Debe describirse con prudencia si hay pocos datos.
La clase modal es el intervalo con mayor frecuencia. En el ejemplo es [100, 150), con 9 observaciones.
Una clase vacía crea un hueco. Una barra aislada lejos de las demás puede señalar un valor atípico, un grupo diferente o un error de medición. El histograma sugiere qué revisar, pero no decide automáticamente la causa.
No existe una única amplitud correcta. Conviene comparar varias opciones razonables y documentar la elegida.
Modifica la amplitud de los intervalos y la medida vertical. Las 30 observaciones permanecen iguales.
Al cambiar la amplitud, cambia el número de barras y también puede cambiar la clase modal. Los datos originales no se modifican.
| Característica | Histograma | Gráfico de barras |
|---|---|---|
| Variable | Cuantitativa. | Cualitativa o categorías definidas. |
| Eje horizontal | Escala numérica continua. | Categorías independientes. |
| Barras | Contiguas. | Separadas. |
| Orden | Numérico y fijo. | Puede cambiar según la pregunta. |
| Finalidad | Mostrar la distribución. | Comparar categorías. |
Un histograma basado en pocos datos puede cambiar mucho al agregar nuevas observaciones. Con muestras pequeñas, no conviene interpretar cada irregularidad como una propiedad estable de la población.
El gráfico debe informar el tamaño de la muestra y, cuando sea relevante, el mecanismo de selección.
El núcleo del cálculo consiste en asignar cada valor a un único intervalo:
function crearIntervalos(datos, inicio, fin, amplitud) {
const cantidad = Math.ceil((fin - inicio) / amplitud);
const frecuencias = new Array(cantidad).fill(0);
for (const valor of datos) {
if (valor < inicio || valor >= fin) continue;
const indice = Math.floor((valor - inicio) / amplitud);
frecuencias[indice]++;
}
return frecuencias;
}
const frecuencias = crearIntervalos(tiempos, 50, 350, 50);
console.log(frecuencias); // [4, 9, 7, 5, 3, 2]
En una aplicación real conviene informar los valores excluidos en lugar de ignorarlos silenciosamente.
Un histograma debe acompañarse de un resumen textual que indique la clase modal, el rango, la muestra y la característica principal de la forma.
El color no reemplaza ejes ni etiquetas. La cuadrícula debe tener contraste suficiente sin competir con las barras.
El histograma resume una variable cuantitativa sin perder su orden numérico. Permite reconocer dónde se concentran los datos y cómo se extienden, siempre que los intervalos se construyan e interpreten correctamente.
En el próximo tema estudiaremos los polígonos de frecuencia.