d3
Version:
A small, free JavaScript library for manipulating documents based on data.
30 lines (25 loc) • 563 B
JavaScript
d3.scale.quantize = function() {
var x0 = 0,
x1 = 1,
kx = 2,
i = 1,
range = [0, 1];
function scale(x) {
return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))];
}
scale.domain = function(x) {
if (!arguments.length) return [x0, x1];
x0 = x[0];
x1 = x[1];
kx = range.length / (x1 - x0);
return scale;
};
scale.range = function(x) {
if (!arguments.length) return range;
range = x;
kx = range.length / (x1 - x0);
i = range.length - 1;
return scale;
};
return scale;
};