2
var scale = d3.scale.threshold().domain([100]).range([0,100])

我有数据,其中 100 表示“好”,低于 100 表示“坏”

我想设置一个 d3 比例,以便 100 -> 1 和以下任何内容 -> 0

我不知道该怎么做:

我在这里阅读https://github.com/mbostock/d3/wiki/Quantitative-Scales#wiki-linear

关于这个例子:

var color = d3.scale.linear()
.domain([-1, 0, 1])
.range(["red", "white", "green"]);

但我不确定如何应用它,因为我的域是连续的 0->100 但我希望我的范围是 0, 1 值

编辑: 这对我有用。

var scale = d3.scale.threshold().domain([100]).range([0,100])

console.log(scale(1)) //returns 0
console.log(scale(99.9)) //returns 0
console.log(scale(88.9)) //returns 0
console.log(scale(100)) //returns 100
4

1 回答 1

2

您可以在设置样式时使用过滤器来分隔数据:

d3.selection().filter( function(d) { return d === 100}).attr("class", "green");
d3.selection().filter( function(d) { return d < 100}).attr("class", "red");

编辑:关于量化和阈值尺度的文档here

于 2013-07-23T23:06:15.933 回答