У меня есть массив (1200 значений) чисел
[123, 145, 158, 133...]
Я хотел бы иметь div для каждого значения с цветом фона от красного до зеленого, красный -самое маленькое число и зеленое самое большое.
Базовая настройка выглядит следующим образом: (шаблонизируется с помощью vuejs, но не имеет отношения к проблеме)
const values = [123, 145, 158, 133...]; // 1200 values inside
const total = values.length;
<div
v-for="(val, i) in values"
:key="i"
:style="{backgroundColor: `rgb(${(100 - (val*100/total)) * 256}, ${(val*100/total) * 256}, 0)`}">
{{val}}
</div>
Я не специалист по математике, но, поскольку всемои числа около 100, сгенерированный RGB одинаков.(около 12% желтоватого цвета)
Как я могу придать больший вес разнице между 137 и 147?
РЕДАКТИРОВАТЬ: окончательная формула:
:style="{backgroundColor: `rgb(${(256/(maxValue-minValue) * (boule-maxValue) - 255)}, ${(256/20 * (boule-maxValue) + 255)}, 0)`}"