Skip to content

Commit e03b645

Browse files
committed
Better ticks for subsecond domains.
Rather than starting the ticks on the minimum domain value, round up based on the step size. Fixes d3#1757.
1 parent d9768e5 commit e03b645

3 files changed

Lines changed: 23 additions & 25 deletions

File tree

d3.js

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1620,7 +1620,7 @@
16201620
return v < 16 ? "0" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16);
16211621
}
16221622
function d3_rgb_parse(format, rgb, hsl) {
1623-
var r = 0, g = 0, b = 0, m1, m2, name;
1623+
var r = 0, g = 0, b = 0, value, m1, m2, name;
16241624
m1 = /([a-z]+)\((.*)\)/i.exec(format);
16251625
if (m1) {
16261626
m2 = m1[2].split(",");
@@ -1638,21 +1638,21 @@
16381638
}
16391639
if (name = d3_rgb_names.get(format)) return rgb(name.r, name.g, name.b);
16401640
if (format != null && format.charAt(0) === "#") {
1641-
if (format.length === 4) {
1642-
r = format.charAt(1);
1643-
r += r;
1644-
g = format.charAt(2);
1645-
g += g;
1646-
b = format.charAt(3);
1647-
b += b;
1648-
} else if (format.length === 7) {
1649-
r = format.substring(1, 3);
1650-
g = format.substring(3, 5);
1651-
b = format.substring(5, 7);
1652-
}
1653-
r = parseInt(r, 16);
1654-
g = parseInt(g, 16);
1655-
b = parseInt(b, 16);
1641+
value = parseInt(format.substring(1), 16);
1642+
if (!isNaN(value)) {
1643+
if (format.length === 4) {
1644+
r = (value & 3840) >> 4;
1645+
r = r >> 4 | r;
1646+
g = value & 240;
1647+
g = g >> 4 | g;
1648+
b = value & 15;
1649+
b = b << 4 | b;
1650+
} else if (format.length === 7) {
1651+
r = (value & 16711680) >> 16;
1652+
g = (value & 65280) >> 8;
1653+
b = value & 255;
1654+
}
1655+
}
16561656
}
16571657
return rgb(r, g, b);
16581658
}
@@ -9219,7 +9219,7 @@
92199219
} ], [ "%Y", d3_true ] ]);
92209220
var d3_time_scaleMilliseconds = {
92219221
range: function(start, stop, step) {
9222-
return d3.range(+start, +stop, step).map(d3_time_scaleDate);
9222+
return d3.range(Math.ceil(start / step) * step, +stop, step).map(d3_time_scaleDate);
92239223
},
92249224
floor: d3_identity,
92259225
ceil: d3_identity

0 commit comments

Comments
 (0)