我的问题是有关 算法将任何正整数以RGB value 但实际上它是不相同的问题-这家伙已经主要是一个数据标准化问题,我实际上有更多的审美的颜色选择的问题。

我有一大堆的数字之间为-1.0和+1.0.我需要建立一个热图复盖的文本。

什么是最简单的方法,使用PHP,转换成每个数字到HTML色(#rrggbb),以这种方式所产生的色彩不只是直观相关的温度(即蓝为最寒冷和最红的热的,与一些平稳过渡中间),而且,它是适合作为背景色黑色文本?

有帮助吗?

解决方案

我会实现它作为一个简单的线性之间的梯度的红色和蓝色的部件,使用 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。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top