Простая функция PHP для преобразования числа в цвет фона HTML тепловой карты? - PullRequest
5 голосов
/ 21 ноября 2010

Мой вопрос связан с Алгоритмом для преобразования любого положительного целого числа в значение RGB , но на самом деле это не тот же вопрос - у этого парня в основном проблема нормализации данных, у меня на самом деле больше эстетического цветапроблема выбора.

У меня есть куча чисел от -1,0 до +1,0.Мне нужно создать тепловую карту с наложением текста.

Какой самый простой способ, используя PHP, преобразовать каждое число в цвет HTML (#rrggbb) таким образом, чтобы полученный цвет не только был интуитивно связантемпература (то есть синяя для самых холодных и самая красная для самых горячих, с плавным переходом между ними), но также и то, что он подходит в качестве фона для черного текста?

1 Ответ

12 голосов
/ 21 ноября 2010

Я бы реализовал его как простой линейный градиент между красным и синим компонентами, используя функцию sprintf для кодирования в шестнадцатеричное значение:

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

Вы можете видетькак выглядит диапазон цветов http://jsfiddle.net/9QQkU/. Соответствующие значения -1, -0,75, 0, 0,75 и 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...