Skip to content

Commit 468dcbc

Browse files
author
Scott Cheng
committed
Add scale.quantize.invert
1 parent 9f25c5f commit 468dcbc

1 file changed

Lines changed: 11 additions & 1 deletion

File tree

src/scale/quantize.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import "../arrays/range";
2+
import "ordinal";
13
import "scale";
24

35
d3.scale.quantize = function() {
@@ -6,6 +8,7 @@ d3.scale.quantize = function() {
68

79
function d3_scale_quantize(x0, x1, range) {
810
var kx, i;
11+
var rangeIndex = d3.scale.ordinal();
912

1013
function scale(x) {
1114
return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))];
@@ -14,6 +17,7 @@ function d3_scale_quantize(x0, x1, range) {
1417
function rescale() {
1518
kx = range.length / (x1 - x0);
1619
i = range.length - 1;
20+
rangeIndex.domain(range).range(d3.range(range.length));
1721
return scale;
1822
}
1923

@@ -34,5 +38,11 @@ function d3_scale_quantize(x0, x1, range) {
3438
return d3_scale_quantize(x0, x1, range); // copy on write
3539
};
3640

41+
scale.invert = function(y) {
42+
y = rangeIndex(y);
43+
return [y / kx + x0,
44+
(y + 1) / kx + x0];
45+
};
46+
3747
return rescale();
38-
}
48+
}

0 commit comments

Comments
 (0)