Calculadora de histograma
Obtenga la tabla de frecuencias que hay detrás de un histograma: los valores 1, 2, 2, 3, 5, 7, 8 y 9 repartidos en cuatro clases de ancho 2 dan recuentos de 3, 1, 1 y 3. Elija el ancho o el número de clases. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Número de intervalos
- 4
- N
- 8
- Min
- 1
- Max
- 9
- Rango
- 8
Un histograma agrupa una muestra numérica en clases contiguas y cuenta cuántas observaciones caen en cada intervalo. Esta calculadora de histograma acepta una lista de números finitos junto con una anchura de clase positiva o un recuento entero positivo de clases, y devuelve cada rango, su conteo bruto y su frecuencia relativa.
Qué devuelve el histograma y cómo se cortan las clases de igual anchura
Un histograma es una partición de igual anchura del rango numérico observado, junto con el número de puntos muestrales que caen en cada intervalo. Esta calculadora no elige un origen «bonito» ni ajusta los bordes a cifras redondas: el primer borde es el mínimo de la muestra y cada borde posterior se desplaza una anchura constante, de modo que dos personas con la misma lista y la misma anchura o el mismo recuento obtienen siempre la misma tabla.
Cada clase devuelta enumera un índice que empieza en uno, los bordes izquierdo y derecho, un conteo bruto, una frecuencia relativa igual al conteo dividido entre n, y una cadena de intervalo que usa corchete semiabierto en las clases interiores y corchete cerrado en la última. La respuesta también reproduce n, min, max, range, la anchura realmente usada, el recuento de clases y qué método prevaleció.
Si todas las observaciones son idénticas el rango es cero, el motor colapsa a una sola clase en ese valor y no inventa clases vecinas vacías. Los campos opcionales se omiten en lugar de rellenarse con null.
Dónde encaja una tabla de frecuencias en el estudio, el análisis y el producto
Los estudiantes se encuentran con histogramas cuando un laboratorio pide una tabla de frecuencias de mediciones repetidas, cuando un libro muestra cuatro clases iguales sobre una serie breve, o cuando necesitan comprobar que una biblioteca de gráficos no omitió el máximo porque la última clase quedó semiabierta. Los docentes pueden generar claves de respuesta que listen cada intervalo y su conteo sin fiarse de valores por defecto opacos del trazado.
Los analistas agrupan tiempos de respuesta, notas de examen, tamaños de cesta o lecturas de sensores para ver forma, huecos y atípicos antes de elegir un modelo. Los equipos de producto y operaciones convierten la misma tabla en una serie de panel que otros servicios pueden cachear, porque la salida es determinista para una lista y una anchura dadas.
Esta página no es la regla de Scott, ni Freedman–Diaconis, ni un motor de gráficos: esas herramientas eligen una anchura o dibujan barras, mientras que esta consume una anchura o un recuento que usted ya tiene y devuelve las clases. Combínela con una calculadora de desviación típica o de resumen de cinco números cuando necesite dispersión, y con una regla dedicada de anchura cuando aún deba elegir h. En esta página el trabajo se ejecuta por completo en su navegador.
Qué puede hacer con ella
Tablas de frecuencias para tareas
Convierta una serie de libro en clases de igual anchura, con conteos y frecuencias relativas, antes de dibujar las barras a mano o de comprobar un gráfico.
Latencia, calificaciones y sensores
Agrupe tiempos de respuesta, notas de examen o lecturas de instrumentos en una tabla estable que pueda compartir, cachear o comparar entre ejecuciones.
Preguntas frecuentes
¿Cómo elige los bordes esta calculadora de histograma?
El primer borde es el mínimo de la muestra.
¿Qué ocurre si un valor no es un número?
Los tokens no numéricos, Infinity y NaN nunca se fuerzan a cero, y la validación fallida no se factura.
¿Por qué la última clase está cerrada por ambos lados?
Las clases interiores son semiabiertas [left, right) para que cada borde interior pertenezca a una sola clase. La última es [left, right] para que el máximo muestral se cuente una vez y no quede fuera de la tabla.
¿Qué pasa si indico a la vez el ancho y el número de clases?
Manda el ancho. La calculadora usa el ancho que usted indicó y calcula cuántas clases hacen falta para cubrir el rango de sus valores, del más pequeño al más grande.
¿Qué ocurre si todos los valores son iguales?
No hay rango que dividir, así que obtiene una sola clase en ese valor con todas las observaciones. La calculadora no inventa clases vacías a uno y otro lado.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/stat/histogram \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"data":[1,2,2,3,5,7,8,9],"bin_width":2}'const res = await fetch("https://api.kit.forhosting.com/stat/histogram", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"data": [
1,
2,
2,
3,
5,
7,
8,
9
],
"bin_width": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/histogram",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"data": [
1,
2,
2,
3,
5,
7,
8,
9
],
"bin_width": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/histogram", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"data":[1,2,2,3,5,7,8,9],"bin_width":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"data":[1,2,2,3,5,7,8,9],"bin_width":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/histogram", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"data": [
1,
2,
2,
3,
5,
7,
8,
9
],
"bin_width": 2
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.histogram",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_n | 10000 |
max_abs | 1000000000000000 |
max_bins | 500 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Si alguna entrada no es un número finito, la tarea falla con invalid_input, de modo que una etiqueta suelta no se convierte en un cero silencioso. El mismo algoritmo puro se ejecuta gratis en el navegador y, a través de la API, a $0.002 por llamada correcta.
Qué devuelve el histograma y cómo se cortan las clases de igual anchura
Cuando usted indica bin_count como entero positivo k, la anchura es el rango observado dividido entre k, el último borde es exactamente el máximo muestral y la última clase queda cerrada a la derecha para que la observación mayor se cuente una sola vez y no se caiga del extremo. Cuando usted indica un bin_width positivo, el motor toma tantas clases como el techo del rango dividido por esa anchura, al menos una, y el último borde puede quedar un poco más allá del máximo para cubrir todos los valores. No hay jitter aleatorio, ni semilla de fecha, ni paso de red: o la aritmética termina dentro de los límites publicados de longitud, magnitud y recuento de clases, o la llamada se rechaza con invalid_input.
Contrato de entrada, rechazo de lo no numérico y estabilidad de la asignación
Cada token debe ser un decimal finito, con signo opcional y exponente científico opcional; los tokens vacíos, booleanos, objetos, Infinity y NaN fallan. Si algún elemento es no numérico, el mensaje nombra el índice, por ejemplo data[2], de modo que una etiqueta suelta en una columna pegada quede visible en vez de convertirse en un cero silencioso. Tras devolver la respuesta no se almacena nada. El campo obligatorio es data, un arreglo de números finitos, con alias values, numbers, x y series para que cuadernos y formularios reutilicen el mismo contrato. También se acepta una cadena de números separados por comas, puntos y coma o espacios cuando un cuadro de texto no puede enviar un arreglo JSON. Debe enviar además bin_width, un número finito positivo, o bin_count, un entero positivo acotado por el máximo publicado. Si ambos están presentes, bin_width tiene prioridad y bin_count se recalcula a partir del rango. La ausencia de data, una lista vacía, una anchura no positiva, un recuento no entero o no positivo, una lista más larga que el n máximo, un valor fuera del techo de magnitud, o una anchura tan pequeña que el recuento implícito de clases superaría el máximo publicado, provocan invalid_input y no se facturan.
Dónde encaja una tabla de frecuencias en el estudio, el análisis y el producto
Los desarrolladores fijan el JSON en la integración continua para que un cambio futuro de las reglas de asignación no reescriba las instantáneas en silencio. A través de la API cada consulta correcta cuesta $0.002; la validación fallida no se cobra y los números se descartan tras la respuesta.
Casos de integración
Fixtures deterministas de gráficos y variables
Fije rangos y frecuencias de clase en las pruebas para que un panel o una covariable discretizada no deriven cuando cambien los valores por defecto del gráfico.
Preguntas técnicas
¿En qué se diferencian bin_width y bin_count?
bin_width es la longitud de cada clase; el motor deduce cuántas clases cubren el rango. bin_count es cuántas clases desea; el motor deduce la anchura. Si se envían ambos, prevalece bin_width.
¿Cuánto cuesta la calculadora de histograma?
La herramienta del navegador es gratuita. Las peticiones API usan saldo prepago de KIT a $0.002 por llamada correcta; la entrada inválida no se factura.