Função PHP simples para converter um número em uma cor de fundo HTML de mapa de calor?
-
26-09-2019 - |
Pergunta
Minha pergunta está relacionada a Algoritmo para converter qualquer número inteiro positivo em um valor RGB Mas, na verdade, não é a mesma pergunta - esse cara tem principalmente um problema de normalização de dados, eu realmente tenho mais um problema estético de seleção de cores.
Eu tenho vários números entre -1,0 e +1,0. Preciso criar um mapa de calor sobreponte ao texto.
Qual é a maneira mais simples, usando o PHP, para converter cada número em uma cor html (#rrggbb), de tal maneira que a cor resultante não apenas está intuitivamente relacionada à temperatura (por exemplo transição no meio), mas também que é adequado como uma cor de fundo para o texto de cor preta?
Solução
Eu o implementaria como um gradiente linear simples entre os componentes vermelhos e azuis, usando o sprintf
função Para codificar a um valor hexadecimal:
function toHeatColor($full) {
$positive = ($full + 1) / 2;
return sprintf("#%02xcc%02x", $positive * 51 + 204, (1 - $positive) * 51 + 204);
}
Você pode ver como a variedade de cores olha para http://jsfiddle.net/9qqku/. Os valores correspondentes são -1, -0,75, 0, 0,75 e 1.