Я хочу создать тепловую карту на основе кликов для моего веб-сайта в php.
Я создал массив, как показано ниже, и нормализовал количество кликов в диапазоне от 0,1 (1 для ссылки с наибольшим количеством кликов):
0 => [
'count' => 290
'normalCount' => 1 //normalized count between 0,1
'link' => 'page/252'
'color' => 'rgb(255, 255, 0)'
]
1 => [
'count' => 277
'normalCount' => 0.95501730103806 //normalized count between 0,1
'link' => '/page/255'
'color' => 'rgb(255, 243.52941176471, 0)'
]
]
2 => [
'count' => 200
'normalCount' => 0.68858131487889
'link' => '/fa/page/253'
'color' => 'rgb(255, 175.58823529412, 0)'
]
]
Я использовал алгоритм в этом вопросе и передал индекс normalCount массива, чтобы получить цвет каждой ссылки.
Но он не генерирует правильный цвет, например для ссылки"page / 252" с нормальным счетом 1, я ожидаю красный цвет (самый теплый), но теперь он желтый.
Ниже приведена моя функция для генерации цвета:
$value = $myArray[$i]['normalCount']
$ratio = $value;
if ($min > 0 || $max < 1) {
if ($value < $min) {
$ratio = 1;
} else if ($value > $max) {
$ratio = 0;
} else {
$range = $min - $max;
$ratio = ($value - $max) / $range;
}
}
$hue = ($ratio * 1.2) / 3.60;
$rgb = $this->ColorHSLToRGB($hue, 1, .5);
$r = round($rgb['r'], 0);
$g = round($rgb['g'], 0);
$b = round($rgb['b'], 0);
return "rgb($r,$g,$b)";