使用javascript / D3,我试图将颜色映射到从红色到灰色到蓝色的颜色渐变,如下所示。
这取自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)
}
非常感谢任何帮助,谢谢!
答案 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值替换颜色关键字。