在使用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循环代替, 不知道有没有大神出来指导一下的