función de PHP simple para convertir un número a un color de fondo mapa de calor HTML?
-
26-09-2019 - |
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-?
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.