Pregunta

Mi pregunta está relacionada con Algoritmo para convertir cualquier entero positivo a un valor RGB pero en realidad no es la misma pregunta -. ese tipo tiene sobre todo un problema de la normalización de datos, en realidad tengo más de un problema de selección de color estética

Tengo un montón de números entre -1,0 y +1,0. Necesito crear un mapa de calor cubrió de texto.

¿Cuál es la forma más sencilla, utilizando PHP, para convertir cada número en un color HTML (#rrggbb), de tal forma que el color resultante no sólo es intuitivamente relacionada con la temperatura (es decir, más azul para más frío y más rojo para el más caliente, con un poco de transición suave entre los dos), sino también que es adecuado como un color de fondo para el texto de color negro-?

¿Fue útil?

Solución

I implementaría como un simple gradiente lineal entre los componentes de color rojo y azul, usando el función sprintf para codificar a un valor hex:

function toHeatColor($full) {
    $positive = ($full + 1) / 2;
    return sprintf("#%02xcc%02x", $positive * 51 + 204, (1 - $positive) * 51 + 204);
}

Se puede ver cómo la gama de colores se ve en http://jsfiddle.net/9QQkU/ . Los valores correspondientes son -1, -0,75, 0, 0,75, y 1.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top