javascript中的颜色范围

javascript中的颜色范围,javascript,highcharts,Javascript,Highcharts,使用JavaScript,如果我得到一个低整数和一个高整数,我想计算出一个十六进制颜色范围,以表示该范围内的不同值。。。最好的方法是什么 我可以举一个例子: // calculate total value var total = 0; for( d in data ){ total += data[d].value; } // Our main color var r=150,g=200,b=250, // some color calculations based on value

使用JavaScript,如果我得到一个低整数和一个高整数,我想计算出一个十六进制颜色范围,以表示该范围内的不同值。。。最好的方法是什么

我可以举一个例子:

// calculate total value
var total = 0;
for( d in data ){
  total += data[d].value;
}

// Our main color
var r=150,g=200,b=250,

// some color calculations based on value and total value

val = (data[iso].value/total)*35;

r -= Math.round(val*30);
g -= Math.round(val*30);
b -= Math.round(val*30);
此代码目前正在尝试创建一系列颜色,但当传递给它的数字非常高时,它会下降,因为r、g和b中的每一个都低于0,这导致它对颜色没有好处。。。如果你明白我的意思


有人能提出更好的办法吗?谢谢。

将输入标准化为[0,1]范围,然后使用该值在两种有效颜色之间插值

var norm = (value - minimum) / (maximum - minimum);
r = Math.round(norm * minRed   + (1 - norm) * maxRed);
g = Math.round(norm * minGreen + (1 - norm) * maxGreen);
b = Math.round(norm * minBlue  + (1 - norm) * maxBlue);

将输入标准化为[0,1]范围,然后使用该值在两种有效颜色之间插值

var norm = (value - minimum) / (maximum - minimum);
r = Math.round(norm * minRed   + (1 - norm) * maxRed);
g = Math.round(norm * minGreen + (1 - norm) * maxGreen);
b = Math.round(norm * minBlue  + (1 - norm) * maxBlue);

谢谢你的回答,我被转移到另一个项目有一段时间了,但一旦我回到这个项目,我会尝试一下。谢谢你。谢谢你的回答,我被转移到另一个项目有一段时间了,但一旦我回到这个项目,我会尝试一下。非常感谢。