我想要这种地图功能:
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中表达该功能?谢谢!
答案 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和其他允许多线性域的定量比例相加,但是量化比例不计算输入域的范围。“。