log.js 1.0 KB

123456789101112131415161718192021222324252627282930313233
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var math_1 = require("../util/math");
  4. /**
  5. * 计算 log 的 ticks,考虑 min = 0 的场景
  6. * @param cfg 度量的配置项
  7. * @returns 计算后的 ticks
  8. */
  9. function calculateLogTicks(cfg) {
  10. var base = cfg.base, tickCount = cfg.tickCount, min = cfg.min, max = cfg.max, values = cfg.values;
  11. var minTick;
  12. var maxTick = math_1.log(base, max);
  13. if (min > 0) {
  14. minTick = Math.floor(math_1.log(base, min));
  15. }
  16. else {
  17. var positiveMin = math_1.getLogPositiveMin(values, base, max);
  18. minTick = Math.floor(math_1.log(base, positiveMin));
  19. }
  20. var count = maxTick - minTick;
  21. var avg = Math.ceil(count / tickCount);
  22. var ticks = [];
  23. for (var i = minTick; i < maxTick + avg; i = i + avg) {
  24. ticks.push(Math.pow(base, i));
  25. }
  26. if (min <= 0) {
  27. // 最小值 <= 0 时显示 0
  28. ticks.unshift(0);
  29. }
  30. return ticks;
  31. }
  32. exports.default = calculateLogTicks;
  33. //# sourceMappingURL=log.js.map