如果希望在同一grid中展示不同數據類型的折線(1000或10%),那么展現出來的折線肯定顯示差距很大,那么怎么讓這兩條折線顯示效果差不多,在之前的項目中碰到了這個問題
每條折線對應的是不同的數據組,即series的數據組,對每個數據組進行排序,求出最大值,然后將這些最大值放在一個數組里,分別填充到yAixs的max中,這樣就互不影響,文字比較繞,直接上代碼
eg:
for(var j in this.initVal) { legendData.push(this.initVal[j]); var i = 0; var newSeriesData = []; //遍歷店鋪匯總數據對象,對本地存儲數據進行遍歷,下拉框數組與本地數據匹配時 for(var k=0; k<$data.length;k++) { var $obj = this.parameter.dataList.find(obj => { return obj.label === this.initVal[j]; }); if($obj) { var $key = $obj.key; //店鋪匯總數據對象里是對象,遍歷這個對象 for(var _$key in $data[k]) { if(_$key === $key) { newSeriesData.push($data[k][$key]); i++; } seriesData[j] = newSeriesData; } } } var sd = JSON.parse(JSON.stringify(newSeriesData)); var max = sd.sort(function(a, b) { return b - a; })[0] + ""; max = (parseInt(max.substring(0, 1)) + 1) + arrPint(max.split(".")[0].length - 1) yAxisData.push({ type: 'value', max: max, axisTick: { show: false }, splitLine: { show: j == 0, lineStyle: { color: '#CCC' } }, axisLabel: { show: false }, axisLine: { lineStyle: { color: '#CCC' } }, }) series.push({ name: this.initVal[j], type: 'line', yAxisIndex: j, data: seriesData[j], itemStyle: { normal: { color: colorList[j], } }, // showAllSymbol:true, }); }
這里yAixs不再是對象,而是數組,里面每一個索引對應一個max
