in src/axisHelper.ts [693:714]
function normalizeLinearDomain(domain: NumberRange): NumberRange {
if (isNaN(domain.min) || isNaN(domain.max)) {
domain.min = emptyDomain[0];
domain.max = emptyDomain[1];
}
else if (domain.min === domain.max) {
// d3 linear scale will give zero tickValues if max === min, so extend a little
domain.min = domain.min < 0 ? domain.min * 1.2 : domain.min * 0.8;
domain.max = domain.max < 0 ? domain.max * 0.8 : domain.max * 1.2;
}
else {
// Check that min is very small and is a negligable portion of the whole domain.
// (fix floating pt precision bugs)
// sometimes highlight value math causes small negative numbers which makes the axis add
// a large tick interval instead of just rendering at zero.
if (Math.abs(domain.min) < 0.0001 && domain.min / (domain.max - domain.min) < 0.0001) {
domain.min = 0;
}
}
return domain;
}