D3.js多线性量化量表

时间:2015-03-23 07:07:19

标签: javascript d3.js scale

我想要这种地图功能:

for 0 <= x < 0.96, returns 'red';
for 0.96 <= x < 0.98, returns 'yellow';
for 0.98 <= x <= 1, returns 'green'.

我尝试使用它,但它没有像我预期的那样工作:

//<0.96: Red, 0.96 - 0.98: Yellow, 0.98-1: Green
var color = d3.scale.quantize()
    .domain([0, 0.96, 0.98, 1]) 
    .range(["red", "yellow", "green"]);

如何在D3js中表达该功能?谢谢!

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。其实我不应该使用量化比例,分位数比例是正确的答案:

 //<0.96: Red, 0.96 - 0.98: Yellow, 0.98-1: Green
 var color = d3.scale.quantile()
    .domain([0, 0.96, 0.98, 1])
    .range(["red", "yellow", "green"]);

根据此页面(https://github.com/mbostock/d3/issues/751):“量化比例(可能不正确,与文档不一致)允许使用两个以上的数字指定域;中间数字将被忽略。此功能与d3.scale.linear和其他允许多线性域的定量比例相加,但是量化比例不计算输入域的范围。“。