@antv/f2
Version:
Charts for mobile visualization.
38 lines (37 loc) • 988 B
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = calculateLogTicks;
var _math = require("../util/math");
/**
* 计算 log 的 ticks,考虑 min = 0 的场景
* @param cfg 度量的配置项
* @returns 计算后的 ticks
*/
function calculateLogTicks(cfg) {
var base = cfg.base,
tickCount = cfg.tickCount,
min = cfg.min,
max = cfg.max,
values = cfg.values;
var minTick;
var maxTick = (0, _math.log)(base, max);
if (min > 0) {
minTick = Math.floor((0, _math.log)(base, min));
} else {
var positiveMin = (0, _math.getLogPositiveMin)(values, base, max);
minTick = Math.floor((0, _math.log)(base, positiveMin));
}
var count = maxTick - minTick;
var avg = Math.ceil(count / tickCount);
var ticks = [];
for (var i = minTick; i < maxTick + avg; i = i + avg) {
ticks.push(Math.pow(base, i));
}
if (min <= 0) {
// 最小值 <= 0 时显示 0
ticks.unshift(0);
}
return ticks;
}
;