在使用echart的过程中, 有的时候柱状图会使用两个纵坐标, 如果两个纵坐标的最大值是一样的还好,这样刻度也会一样. 但是多数情况下最大值是不一样的, 这样就造成了,刻度线很乱,显示不均匀.
解决办法:
使用max , splitNumber, interval 三个属性配合
{ type: "value", name: "订单量", position: "left", axisTick: { show: true }, axisLine: { show: true, onZero: true, lineStyle: { color: "#999" } }, axisLabel: { formatter: "{value}" }, splitLine: { show: true }, min: 0, max: 1, splitNumber: 5 interval: "", },
赋值最大值, 分割刻度:
let max0 = data.max_count; if(data.max_count < 1){ this.orderOption.yAxis[0].max = 1 }else{ for(let i=0; i<10; i++){ if( max0/Math.pow(10, i) <10){ this.orderOption.yAxis[0].max = Math.ceil(max0/Math.pow(10, i)) * Math.pow(10, i) this.orderOption.yAxis[0].interval = (Math.ceil(max0/Math.pow(10, i)) * Math.pow(10, i))/5 break; } } }
这里的for循环可以用递归的, 但是递归不太会写所以就用for循环代替, 不知道有没有大神出来指导一下的