parse(raw, index) {
const value = LinearScaleBase.prototype.parse.apply(this, [raw, index]);
if (value === 0) {
+ this._zero = true;
return undefined;
}
return isFinite(value) && value > 0 ? value : NaN;
if (max <= 0) {
max = Math.pow(10, Math.floor(log10(min)) + 1);
}
+ // if data has `0` in it or `beginAtZero` is true, and min (non zero) value is at bottom
+ // of scale, lower the min bound by one exp.
+ if (!me._userMin && me._zero && min === Math.pow(10, Math.floor(log10(me.min)))) {
+ min = Math.pow(10, Math.floor(log10(min)) - 1);
+ }
me.min = min;
me.max = max;
}
me._startValue = log10(start);
me._valueRange = log10(me.max) - log10(start);
+ me._zero = me.options.beginAtZero;
}
getPixelForValue(value) {
});
var y = chart.scales.y;
- expect(y.min).toBe(1);
+ expect(y.min).toBe(0.1);
expect(y.max).toBe(2);
});
});
var y = chart.scales.y;
- expect(y.min).toBe(1);
+ expect(y.min).toBe(0.1);
expect(y.max).toBe(2);
});
type: 'line',
data: {
datasets: [{
- data: [10, 5, 1, 25, 0, 78]
+ data: [10, 5, 1.1, 25, 0, 78]
}],
labels: []
},
min: 0
}
},
- firstTick: 1,
+ firstTick: 0.1,
describe: 'all stacks are defined and min: 0'
},
{
min: 0
}
},
- firstTick: 1,
+ firstTick: 0.1,
describe: 'not stacks are defined and min: 0'
},
{
min: 0
}
},
- firstTick: 1,
+ firstTick: 0.1,
describe: 'all stacks are defined and min: 0'
},
{
min: 0
}
},
- firstTick: 1,
+ firstTick: 0.1,
describe: 'not all stacks are defined and min: 0'
},
];
chartEnd = 'top';
}
scaleConfig[setup.axis] = {
- type: 'logarithmic'
+ type: 'logarithmic',
+ beginAtZero: false
};
Object.assign(scaleConfig, setup.scale);
scaleConfig[setup.axis].type = 'logarithmic';