Javascript颜色渐变甚至分裂,蓝色到灰色到红色

时间:2016-06-06 03:06:13

标签: javascript d3.js colors interpolation gradient

使用javascript / D3,我试图将颜色映射到从红色到灰色到蓝色的颜色渐变,如下所示。enter image description here

这取自Algo Vis论文Algo Vis 幻灯片13.但是我在制作这个渐变时遇到了麻烦。我试过了 创建两个渐变,从蓝色到灰色,从灰色到红色,如下所示,但我的结果是关闭的。

botRgb = d3.rgb(0,0,210);
topRgb = d3.rgb(210,0,0);
midRgb = d3.rgb(230,230,230);
gradient1 = d3.interpolateRgb(botRgb,midRgb);
gradient2 = d3.interpolateRgb(midRgb,topRgb);
// assume x is from 0 to 1
if (x < 0.5){
  return gradient1(x)
} else {
  return gradient2(x)
}

enter image description here

非常感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:2)

您可能需要查看d3.scale。特别是,continuous domain功能允许用户创建一个域 - 在您的情况下,您说您的x从0到1 - 并为该范围内的该域指定等价物。

类似的东西:

var color = d3.scaleLinear()
    .domain([0, 0.5, 1.0])
    .range(["blue", "white", "red"]);

// use with color(x) where x is from 0 to 1;

也许用rgb值替换颜色关键字。