echarts多轴求最大公约数并间隔相同不出现横线错位
/*
* @description echarts专用求最大公约数 不含小数
* */
export function chartlcm(a: number, b: number) {
let result = 1;
for (let i = 1; i <= a && i <= b; i++) {
if (a % i == 0 && b % i == 0) {
result = i;
}
if (result > 1 && i >= 10)//公约数大于10的时候 直接跳出 避免y轴刻度太多 (如果不介意刻度太多可以把这一段去掉)
break;
}
return result;
}
/*
* @description 获取echarts 多Y轴的最大值和间隔值
* @param { number } m - Y轴1的最大值
* @param { number } n - Y轴2的最大值
* @param { number } lcmval - 最大公约数
* @param { number } divisor - 间隔数量
* */
export function YmaxvalAndinterval(m: number, n: number, lcmval: number, divisor: number) {
let interval1 = Math.ceil(m / lcmval);
let interval2 = Math.ceil(n / lcmval);
if (lcmval != 1 && lcmval != 0 && lcmval <= 10) {
return {max1: m, max2: n, interval1: interval1, interval2: interval2};
}
if (divisor == undefined)
divisor = 5;
//var mval = m % divisor;
//if (mval > 0) {
// m = ((m - mval) / divisor + 1) * divisor
//}
m = Math.ceil(m / divisor) * divisor;
n = Math.ceil(n / divisor) * divisor;
interval1 = Math.ceil(m / divisor);
interval2 = Math.ceil(n / divisor);
return {max1: m, max2: n, interval1: interval1, interval2: interval2};
}
评论区