所以我正在查看d3分位数量表的源代码。在rescale函数中,调用d3.quantile函数。
电话看起来像这样
function rescale() {
var k = 0,
q = range.length;
thresholds = [];
while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q);
return scale;
}
该功能如下所示
d3.quantile = function(values, p) {
var H = (values.length - 1) * p + 1,
h = Math.floor(H),
v = +values[h - 1],
e = H - h;
return e ? v + e * (values[h] - v) : v;
};
为什么d3.quantile函数给我们提供了良好的形式(并且我的意思是整数)具有合理且一致的bin大小的bin?