Fix another rounding bug in log.ticks.
This commit is contained in:
Родитель
4162116088
Коммит
595547389b
|
@ -6835,9 +6835,9 @@ d3 = function() {
|
|||
return scale;
|
||||
};
|
||||
scale.ticks = function() {
|
||||
var extent = d3_scaleExtent(linear.domain()), ticks = [];
|
||||
var extent = d3_scaleExtent(domain), ticks = [];
|
||||
if (extent.every(isFinite)) {
|
||||
var i = Math.floor(extent[0]), j = Math.ceil(extent[1]), u = pow(extent[0]), v = pow(extent[1]), n = base % 1 ? 2 : base;
|
||||
var i = Math.floor(log(extent[0])), j = Math.ceil(log(extent[1])), u = extent[0], v = extent[1], n = base % 1 ? 2 : base;
|
||||
if (positive) {
|
||||
for (;i < j; i++) for (var k = 1; k < n; k++) ticks.push(Math.pow(base, i) * k);
|
||||
ticks.push(Math.pow(base, i));
|
||||
|
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -44,13 +44,13 @@ function d3_scale_log(linear, base, positive, domain) {
|
|||
};
|
||||
|
||||
scale.ticks = function() {
|
||||
var extent = d3_scaleExtent(linear.domain()),
|
||||
var extent = d3_scaleExtent(domain),
|
||||
ticks = [];
|
||||
if (extent.every(isFinite)) {
|
||||
var i = Math.floor(extent[0]),
|
||||
j = Math.ceil(extent[1]),
|
||||
u = pow(extent[0]),
|
||||
v = pow(extent[1]),
|
||||
var i = Math.floor(log(extent[0])),
|
||||
j = Math.ceil(log(extent[1])),
|
||||
u = extent[0],
|
||||
v = extent[1],
|
||||
n = base % 1 ? 2 : base;
|
||||
if (positive) {
|
||||
for (; i < j; i++) for (var k = 1; k < n; k++) ticks.push(Math.pow(base, i) * k);
|
||||
|
|
|
@ -206,6 +206,30 @@ suite.addBatch({
|
|||
"1e+10"
|
||||
]);
|
||||
},
|
||||
"generates ticks that cover the domain": function(d3) {
|
||||
var x = d3.scale.log().domain([.01, 10000]);
|
||||
assert.deepEqual(x.ticks(20).map(x.tickFormat(20)), [
|
||||
"1e-2", "2e-2", "3e-2", "", "", "", "", "", "",
|
||||
"1e-1", "2e-1", "3e-1", "", "", "", "", "", "",
|
||||
"1e+0", "2e+0", "3e+0", "", "", "", "", "", "",
|
||||
"1e+1", "2e+1", "3e+1", "", "", "", "", "", "",
|
||||
"1e+2", "2e+2", "3e+2", "", "", "", "", "", "",
|
||||
"1e+3", "2e+3", "3e+3", "", "", "", "", "", "",
|
||||
"1e+4"
|
||||
]);
|
||||
},
|
||||
"generates ticks that cover the niced domain": function(d3) {
|
||||
var x = d3.scale.log().domain([.0124123, 1230.4]).nice();
|
||||
assert.deepEqual(x.ticks(20).map(x.tickFormat(20)), [
|
||||
"1e-2", "2e-2", "3e-2", "", "", "", "", "", "",
|
||||
"1e-1", "2e-1", "3e-1", "", "", "", "", "", "",
|
||||
"1e+0", "2e+0", "3e+0", "", "", "", "", "", "",
|
||||
"1e+1", "2e+1", "3e+1", "", "", "", "", "", "",
|
||||
"1e+2", "2e+2", "3e+2", "", "", "", "", "", "",
|
||||
"1e+3", "2e+3", "3e+3", "", "", "", "", "", "",
|
||||
"1e+4"
|
||||
]);
|
||||
},
|
||||
"can override the tick format": function(d3) {
|
||||
var x = d3.scale.log().domain([1000.1, 1]);
|
||||
assert.deepEqual(x.ticks().map(x.tickFormat(10, d3.format("+,d"))), [
|
||||
|
|
Загрузка…
Ссылка в новой задаче