Skip to content

Commit 29efd2a

Browse files
committed
Fix a bug in d3.scale.log ticks.
1 parent b49c878 commit 29efd2a

8 files changed

Lines changed: 85 additions & 57 deletions

File tree

d3.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
(function(){d3 = {version: "1.8.3"}; // semver
1+
(function(){d3 = {version: "1.8.4"}; // semver
22
if (!Date.now) Date.now = function() {
33
return +new Date();
44
};
@@ -2067,7 +2067,7 @@ d3.scale.log = function() {
20672067
j = Math.ceil(d[1]),
20682068
u = pow(d[0]),
20692069
v = pow(d[1]);
2070-
if (n) {
2070+
if (log === d3_scale_logn) {
20712071
ticks.push(pow(i));
20722072
for (; i++ < j;) for (var k = 9; k > 0; k--) ticks.push(pow(i) * k);
20732073
} else {

d3.min.js

Lines changed: 53 additions & 53 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/core/core.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
d3 = {version: "1.8.3"}; // semver
1+
d3 = {version: "1.8.4"}; // semver

src/scale/log.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ d3.scale.log = function() {
3131
j = Math.ceil(d[1]),
3232
u = pow(d[0]),
3333
v = pow(d[1]);
34-
if (n) {
34+
if (log === d3_scale_logn) {
3535
ticks.push(pow(i));
3636
for (; i++ < j;) for (var k = 9; k > 0; k--) ticks.push(pow(i) * k);
3737
} else {

tests/test-scale-linear.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,3 +70,11 @@ console.log(" Date -> ", x.range([new Date(1990, 0, 1), new Date(1991,
7070
console.log(" Number -> ", x.range([new Number(0), new Number(42)]).invert(new Number(21)));
7171
console.log(" ??? -> ", x.range(["#000", "#fff"]).invert("#999")); // can't be coerced
7272
console.log("");
73+
74+
var x = d3.scale.linear();
75+
console.log("ticks:");
76+
console.log(" 1 -> ", x.ticks(1).map(x.tickFormat(1)).join(", "));
77+
console.log(" 2 -> ", x.ticks(2).map(x.tickFormat(2)).join(", "));
78+
console.log(" 5 -> ", x.ticks(5).map(x.tickFormat(5)).join(", "));
79+
console.log(" 10 -> ", x.ticks(10).map(x.tickFormat(10)).join(", "));
80+
console.log("");

tests/test-scale-linear.out

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,3 +50,9 @@ range coercion, invert:
5050
Number -> 0.5
5151
??? -> NaN
5252

53+
ticks:
54+
1 -> 0, 1
55+
2 -> 0.0, 0.5, 1.0
56+
5 -> 0.0, 0.2, 0.4, 0.6, 0.8, 1.0
57+
10 -> 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
58+

tests/test-scale-log.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,3 +67,11 @@ console.log(" 1 -> ", x(1));
6767
console.log(" 5 -> ", x(5));
6868
console.log(" 10 -> ", x(10));
6969
console.log("");
70+
71+
var x = d3.scale.log(), f = x.tickFormat();
72+
console.log("ticks:");
73+
console.log(" [.1, 10] -> ", x.ticks().map(f).join(", "));
74+
console.log(" [.1, 100] -> ", x.domain([.1, 100]).ticks().map(f).join(", "));
75+
console.log(" [1, 100] -> ", x.domain([1, 100]).ticks().map(f).join(", "));
76+
console.log(" [-100, -1] -> ", x.domain([-100, -1]).ticks().map(f).join(", "));
77+
console.log("");

tests/test-scale-log.out

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,9 @@ domain([.1, 10]).range(["red", "blue"]).interpolate(hsl):
4949
5 -> #009aff
5050
10 -> #0000ff
5151

52+
ticks:
53+
[.1, 10] -> 1, 2, 3, 4, 5, 6, 7, 8, 9, 1e+1
54+
[.1, 100] -> 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1e+1, 2e+1, 3e+1, 4e+1, 5e+1, 6e+1, 7e+1, 8e+1, 9e+1, 1e+2
55+
[1, 100] -> 1, 2, 3, 4, 5, 6, 7, 8, 9, 1e+1, 2e+1, 3e+1, 4e+1, 5e+1, 6e+1, 7e+1, 8e+1, 9e+1, 1e+2
56+
[-100, -1] -> -1e+2, -9e+1, -8e+1, -7e+1, -6e+1, -5e+1, -4e+1, -3e+1, -2e+1, -1e+1, -9, -8, -7, -6, -5, -4, -3, -2, -1
57+

0 commit comments

Comments
 (0)