通过源码方法获取这里的分割数字长度

/**
* Quantity of a number. e.g. 0.1, 1, 10, 100
*
* @param {number} val
* @return {number}
*/
function quantity(val) {
return Math.pow(10, quantityExponent(val));
} function quantityExponent(val) {
return Math.floor(Math.log(val) / Math.LN10);
} /**
* find a “nice” number approximately equal to x. Round the number if round = true,
* take ceiling if round = false. The primary observation is that the “nicest”
* numbers in decimal are 1, 2, and 5, and all power-of-ten multiples of these numbers.
*
* See "Nice Numbers for Graph Labels" of Graphic Gems.
*
* @param {number} val Non-negative value.
* @param {boolean} round
* @return {number}
*/
function nice(val, round) {
console.log('get real splitNum==1111===>', val, round);
var exponent = quantityExponent(val);
var exp10 = Math.pow(10, exponent);
var f = val / exp10; // 1 <= f < 10
var nf;
if (round) {
if (f < 1.5) {
nf = 1;
}
else if (f < 2.5) {
nf = 2;
}
else if (f < 4) {
nf = 3;
}
else if (f < 7) {
nf = 5;
}
else {
nf = 10;
}
}
else {
if (f < 1) {
nf = 1;
}
else if (f < 2) {
nf = 2;
}
else if (f < 3) {
nf = 3;
}
else if (f < 5) {
nf = 5;
}
else {
nf = 10;
}
}
val = nf * exp10; // Fix 3 * 0.1 === 0.30000000000000004 issue (see IEEE 754).
// 20 is the uppper bound of toFixed.
const nice = exponent >= -20 ? +val.toFixed(exponent < 0 ? -exponent : 0) : val;
return nice;
}

  

使用方法

// val 传递的是: (你当前data数组中的最大值 / (splitNumber | 5))
// splitNumber 是你写的分割段数 如果没有设置 则使用5相除
// round 传false // 例如 我这里传24
nice(24,false); // 返回20, 其中20 就是 步长值 // 如果是堆叠图表 需要进行数据相加后 获取相加后的数组的最大值 然后进行计算
nice(37, false); //

  

最新文章

  1. zookeeper集群某个follower启动失败
  2. 为Widget添加事件
  3. [JavaScript]&#39;this&#39;详解
  4. OC基础-第1天
  5. ES 6 : 数组的扩展
  6. C++编程练习(3)----“实现简单的栈的顺序存储结构“
  7. C# Dictionary根据Key排序
  8. ●BZOJ 1934 [Shoi2007]Vote 善意的投票
  9. JDBC编程-优化程序(六)
  10. python将两个数组合并成一个数组的两种方法的代码
  11. 远程Gitlab新建的分支在IDEA里不显示
  12. mysql操作命令
  13. 三菱蓝瑟CK4A
  14. SoftwareEngineering.APIDesign.iOS
  15. Ef-Code-First 使用实体类映射出数据库
  16. 无oracle客户端仅用plsql连接远程oracle
  17. window下的窗口事件-js
  18. VS调试DLL代码使用”附加到进程“
  19. Viso Professional 2013版本激活(office 系列产品 -- visio 2013 / project 2013 破解工具 - KMSpico)
  20. 20145105 《Java程序设计》第1周学习总结

热门文章

  1. 【数论】[圆点坐标]P2508圆上的整点
  2. 洛谷 p1047 校门外的树 线段树做法
  3. vs启动报4.X的错
  4. UDF——监测指定点的物理量
  5. 使用 udev 进行动态内核设备管理(转自suse文档)
  6. [原创]Emmagee V2.4工具使用介绍
  7. vue本地静态图片的路径问题解决方案
  8. Scala 在挖财的应用实践
  9. Python(一)对 meta class 的理解
  10. 【Kubernetes学习之三】Kubernetes分布式集群架构