Skip to content

Commit 95bc9f4

Browse files
committed
Fix log.nice.
1 parent f281e7c commit 95bc9f4

File tree

8 files changed

+35
-10
lines changed

8 files changed

+35
-10
lines changed

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "d3",
3-
"version": "3.2.5",
3+
"version": "3.2.6",
44
"main": "d3.js",
55
"scripts": [
66
"d3.js"

component.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"animation",
1111
"canvas"
1212
],
13-
"version": "3.2.5",
13+
"version": "3.2.6",
1414
"main": "index-browserify.js",
1515
"scripts": [
1616
"d3.js",

d3.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
d3 = function() {
22
var d3 = {
3-
version: "3.2.5"
3+
version: "3.2.6"
44
};
55
if (!Date.now) Date.now = function() {
66
return +new Date();
@@ -6836,10 +6836,13 @@ d3 = function() {
68366836
scale.base = function(_) {
68376837
if (!arguments.length) return base;
68386838
base = +_;
6839-
return scale.domain(domain);
6839+
linear.domain(domain.map(log));
6840+
return scale;
68406841
};
68416842
scale.nice = function() {
6842-
domain = d3_scale_nice(linear.domain(), positive ? Math : d3_scale_logNiceNegative).map(pow);
6843+
var niced = d3_scale_nice(domain.map(log), positive ? Math : d3_scale_logNiceNegative);
6844+
linear.domain(niced);
6845+
domain = niced.map(pow);
68436846
return scale;
68446847
};
68456848
scale.ticks = function() {

d3.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "d3",
3-
"version": "3.2.5",
3+
"version": "3.2.6",
44
"description": "A small, free JavaScript library for manipulating documents based on data.",
55
"keywords": [
66
"dom",

src/scale/log.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,14 @@ function d3_scale_log(linear, base, positive, domain) {
3535
scale.base = function(_) {
3636
if (!arguments.length) return base;
3737
base = +_;
38-
return scale.domain(domain);
38+
linear.domain(domain.map(log));
39+
return scale;
3940
};
4041

4142
scale.nice = function() {
42-
domain = d3_scale_nice(linear.domain(), positive ? Math : d3_scale_logNiceNegative).map(pow);
43+
var niced = d3_scale_nice(domain.map(log), positive ? Math : d3_scale_logNiceNegative);
44+
linear.domain(niced); // do not modify the linear scale’s domain in-place!
45+
domain = niced.map(pow);
4346
return scale;
4447
};
4548

src/start.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
d3 = (function(){
2-
var d3 = {version: "3.2.5"}; // semver
2+
var d3 = {version: "3.2.6"}; // semver

test/scale/log-test.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,12 @@ suite.addBatch({
306306
assert.inDelta(x.domain(), [1, 1.5, 100], 1e-6);
307307
var x = d3.scale.log().domain([-123.1, -1.5, -.5]).nice();
308308
assert.inDelta(x.domain(), [-1000, -1.5, -.1], 1e-6);
309+
},
310+
"the niced domain is subsequently used by the scale": function(d3) {
311+
var x = d3.scale.log().domain([1.5, 50]).nice();
312+
assert.inDelta(x.domain(), [1, 100], 1e-6);
313+
assert.inDelta(x(1), 0, 1e-6);
314+
assert.inDelta(x(100), 1, 1e-6);
309315
}
310316
},
311317

@@ -351,6 +357,19 @@ suite.addBatch({
351357
assert.inDelta(x(20), 1.30103, 1e-6);
352358
assert.inDelta(y(20), 1.30103, 1e-6);
353359
assert.isFalse(x.clamp());
360+
},
361+
"changes to nicing are isolated": function(d3) {
362+
var x = d3.scale.log().domain([1.5, 50]), y = x.copy().nice();
363+
assert.inDelta(x.domain(), [1.5, 50], 1e-6);
364+
assert.inDelta(x(1.5), 0, 1e-6);
365+
assert.inDelta(x(50), 1, 1e-6);
366+
assert.inDelta(x.invert(0), 1.5, 1e-6);
367+
assert.inDelta(x.invert(1), 50, 1e-6);
368+
assert.inDelta(y.domain(), [1, 100], 1e-6);
369+
assert.inDelta(y(1), 0, 1e-6);
370+
assert.inDelta(y(100), 1, 1e-6);
371+
assert.inDelta(y.invert(0), 1, 1e-6);
372+
assert.inDelta(y.invert(1), 100, 1e-6);
354373
}
355374
}
356375
}

0 commit comments

Comments
 (0)