我正在尝试使用JavaScript(D3.js)创建一个情节。在每一秒我都有一个带标签的新命名点,这个标签是从给定间隔中随机选择的一个浮点数。
我需要用一个给定的颜色来表示这个标签(浮点数)所以我得到了渐变颜色的点,类似:
到目前为止,我已经尝试了这个,但它没有给出预期的结果。
function float2color( label ) {
var r = 255 - ( label / 8 * 255 | 0 );
g = label / 8 * 255 | 0;
return '#' +
( r ? ( r = r.toString(16), r.length == 2 ? r : '0' + r ) : '00' ) +
( g ? ( g = g.toString(16), g.length == 2 ? g : '0' + g ) : '00' ) + '00'
}
结果(不好))
答案 0 :(得分:0)
听起来你想要的是线性色标。这将取代你的float2color函数。
var color = d3.scale.linear()
.domain([min, max])
.range(['blue', 'yellow']);
然后实际从浮动中获取颜色,
color(float_value);
请注意,'blue'
和'yellow'
也可以作为十六进制表示。见https://github.com/mbostock/d3/wiki/Quantitative-Scales#linear-scales