Skip to content

Commit 22689b0

Browse files
committed
Merge branch 'fix-ordinal-single-point' into 2.10.1
2 parents d12d79c + 05da7af commit 22689b0

File tree

4 files changed

+9
-4
lines changed

4 files changed

+9
-4
lines changed

d3.v2.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2483,7 +2483,7 @@
24832483
};
24842484
scale.rangePoints = function(x, padding) {
24852485
if (arguments.length < 2) padding = 0;
2486-
var start = x[0], stop = x[1], step = (stop - start) / (domain.length - 1 + padding);
2486+
var start = x[0], stop = x[1], step = (stop - start) / (Math.max(1, domain.length - 1) + padding);
24872487
range = steps(domain.length < 2 ? (start + stop) / 2 : start + step * padding / 2, step);
24882488
rangeBand = 0;
24892489
ranger = {

d3.v2.min.js

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/scale/ordinal.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ function d3_scale_ordinal(domain, ranger) {
3636
if (arguments.length < 2) padding = 0;
3737
var start = x[0],
3838
stop = x[1],
39-
step = (stop - start) / (domain.length - 1 + padding);
39+
step = (stop - start) / (Math.max(1, domain.length - 1) + padding);
4040
range = steps(domain.length < 2 ? (start + stop) / 2 : start + step * padding / 2, step);
4141
rangeBand = 0;
4242
ranger = {t: "rangePoints", a: arguments};

test/scale/ordinal-test.js

+5
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,11 @@ suite.addBatch({
120120
assert.deepEqual(x.range(), [30, 60, 90]);
121121
assert.equal(x.rangeBand(), 0);
122122
},
123+
"correctly handles singleton domains": function(ordinal) {
124+
var x = ordinal().domain(["a"]).rangePoints([0, 120]);
125+
assert.deepEqual(x.range(), [60]);
126+
assert.equal(x.rangeBand(), 0);
127+
},
123128
"can be set to a descending range": function(ordinal) {
124129
var x = ordinal().domain(["a", "b", "c"]).rangePoints([120, 0]);
125130
assert.deepEqual(x.range(), [120, 60,0]);

0 commit comments

Comments
 (0)