log.js 932 B

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