在使用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循環代替, 不知道有沒有大神出來指導一下的