echarts 通过源码方法 传入对应data数据获取分割步长值
2024-09-27 05:24:56
通过源码方法获取这里的分割数字长度
/**
* 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); //
最新文章
- zookeeper集群某个follower启动失败
- 为Widget添加事件
- [JavaScript]&#39;this&#39;详解
- OC基础-第1天
- ES 6 : 数组的扩展
- C++编程练习(3)----“实现简单的栈的顺序存储结构“
- C# Dictionary根据Key排序
- ●BZOJ 1934 [Shoi2007]Vote 善意的投票
- JDBC编程-优化程序(六)
- python将两个数组合并成一个数组的两种方法的代码
- 远程Gitlab新建的分支在IDEA里不显示
- mysql操作命令
- 三菱蓝瑟CK4A
- SoftwareEngineering.APIDesign.iOS
- Ef-Code-First 使用实体类映射出数据库
- 无oracle客户端仅用plsql连接远程oracle
- window下的窗口事件-js
- VS调试DLL代码使用”附加到进程“
- Viso Professional 2013版本激活(office 系列产品 -- visio 2013 / project 2013 破解工具 - KMSpico)
- 20145105 《Java程序设计》第1周学习总结