Escala de colores por intervalos
La herramienta de escala de colores por intervalos asigna un valor numérico a uno de varios tramos de igual amplitud y devuelve el color correspondiente entre dos extremos hexadecimales.
Ejecutar — gratis
Indique el valor, un mínimo y un máximo inclusivos, la cantidad de intervalos y los colores inicial y final. La herramienta valida todos los datos, trata expresamente el límite superior y produce siempre el mismo resultado. Úsela en paneles, mapas, bandas de puntuación, leyendas, informes y cualquier flujo que requiera una clasificación reproducible en lugar de un degradado continuo.
Convierta un rango continuo en categorías fiables
Un degradado continuo puede sugerir más precisión de la que realmente tiene una medición. Los intervalos hacen explícita la decisión: todos los valores de un mismo tramo reciben exactamente el mismo color. Introduzca el valor numérico, los límites inferior y superior inclusivos y la cantidad de intervalos. La herramienta divide el rango en tramos de igual amplitud, los numera desde uno e informa tanto del índice basado en cero como de sus límites numéricos. Cada intervalo incluye su límite inferior y excluye el superior, salvo el último, que incluye el máximo declarado. Esta regla evita discrepancias entre sistemas para valores situados justo en un límite. El indicador devuelto también señala si el extremo superior es inclusivo. Resulta útil cuando un gráfico, una exportación, un servicio y una vista web deben clasificar igual. No analiza un conjunto de datos ni calcula cuantiles estadísticos: el mínimo y el máximo proporcionados definen la escala, por lo que el resultado no depende de observaciones ocultas ni de su orden.
Construya la escala mediante interpolación RGB determinista
El primer intervalo utiliza el color inicial y el último utiliza el color final. Los colores intermedios se calculan interpolando por separado los canales rojo, verde y azul y redondeando cada canal al entero más cercano. La posición depende del índice del intervalo, no del valor bruto; así, dos valores del mismo tramo reciben el mismo color hexadecimal. Los extremos admiten seis dígitos hexadecimales con o sin almohadilla, y la salida se normaliza en minúsculas con almohadilla. La interpolación RGB es deliberadamente sencilla y reproducible en la API y en el navegador. No es un modelo perceptual; para paletas con requisitos de accesibilidad, elija extremos cuyos colores intermedios sigan siendo distinguibles y tengan contraste suficiente. El resultado incluye el color, el índice, el número legible, la cantidad total y los límites numéricos del intervalo. Con estos datos puede colorear una marca y crear una descripción emergente, leyenda, validación o registro de auditoría coherentes sin repetir el cálculo en otro sistema.
Valide los rangos antes de visualizarlos
El ajuste silencioso parece cómodo hasta que un fallo anterior colorea un valor imposible como si fuera válido. Por ello, la herramienta rechaza números no finitos, rangos invertidos o sin amplitud, valores fuera del rango inclusivo, colores mal formados y cantidades que no sean enteros entre 2 y 256. Así los errores son accionables y el panel no oculta mediciones defectuosas. Defina los límites en el sistema responsable de la métrica y reutilícelos para todos los valores. Si la distribución está muy sesgada y necesita cuantiles con igual población, calcule primero sus puntos de corte; esta función genera intervalos de igual amplitud entre extremos explícitos. Para una leyenda estable, aplique las mismas reglas al crear etiquetas y colorear datos. El máximo se trata de forma especial para que la división de coma flotante no lo coloque fuera del último índice. Los demás límites exactos entran en el intervalo siguiente, conforme a la convención documentada. El navegador y la API comparten el mismo algoritmo puro, para que pueda probarlo antes de automatizarlo por $0.002 por solicitud.
Qué puede hacer con ella
Coloree un panel de rendimiento
Aplique colores coherentes a valores de latencia, ingresos, utilización o calidad en tarjetas y gráficos.
Cree una clasificación coroplética
Distribuya mediciones regionales en intervalos fijos y mantenga el relleno del mapa alineado con la leyenda.
Normalice bandas de riesgo
Aplique un rango, una cantidad de intervalos y una paleta comunes a puntuaciones repetibles en informes y exportaciones.
Preguntas frecuentes
¿Calcula cuantiles estadísticos de un conjunto de datos?
No. Crea intervalos de igual amplitud entre el mínimo y el máximo explícitos; no recibe ni analiza un conjunto de datos.
¿Qué ocurre cuando el valor coincide con el máximo?
El máximo es válido y se asigna al último intervalo, cuyo límite superior es inclusivo.
¿Qué formatos de color admite?
Use un color RGB hexadecimal de seis dígitos, con o sin almohadilla. El resultado se devuelve en minúsculas y con almohadilla.
¿Cómo se calculan los colores intermedios?
Los canales rojo, verde y azul se interpolan por separado según la posición del intervalo y se redondean a enteros.
¿Puede ajustar valores que queden fuera del rango?
No. Los rechaza para que una medición inválida no aparezca silenciosamente como un color extremo válido.
¿Cuánto cuesta?
La API cuesta $0.002 por solicitud. El mismo cálculo determinista puede ejecutarse gratis en el navegador.
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/color/scale-buckets \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":72,"min":0,"max":100,"buckets":5,"start_color":"#ffffcc","end_color":"#800026"}'const res = await fetch("https://api.kit.forhosting.com/color/scale-buckets", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": 72,
"min": 0,
"max": 100,
"buckets": 5,
"start_color": "#ffffcc",
"end_color": "#800026"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/scale-buckets",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": 72,
"min": 0,
"max": 100,
"buckets": 5,
"start_color": "#ffffcc",
"end_color": "#800026"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/scale-buckets", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":72,"min":0,"max":100,"buckets":5,"start_color":"#ffffcc","end_color":"#800026"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":72,"min":0,"max":100,"buckets":5,"start_color":"#ffffcc","end_color":"#800026"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/scale-buckets", 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
{
"value": 72,
"min": 0,
"max": 100,
"buckets": 5,
"start_color": "#ffffcc",
"end_color": "#800026"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.scale_buckets",
"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.
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. |