今天遇到一个问题,就是我是一个tab切换的各种图表,但是获取得到的数据是正确的,我自己分装了一个函数,函数如下:
function setEcharts(box,obj){ var optionZhe = { tooltip: { trigger: 'axis', backgroundColor:'#eee', textStyle:{ fontSize:12, color:'#000' } }, legend: { data: keyArrItem }, xAxis: [ { type: 'category', boundaryGap: false, data: xPush } ], yAxis : [ { type : 'value' } ], series: obj }; box.setOption(optionZhe,true); }
对series获取值--
for(var i= 0 ;i<echartShow[key].length;i++){ for(var keyIn in echartShow[key][i]){ keyArrItem.push(keyIn); obj= {}; obj={ name:keyIn, type:'line', stack:'总数', data:echartShow[key][i][keyIn] } seriesObj.push(obj); } }
box--画布的容器。 keyArrItem--我们的item。 xPush--是x轴的数据。 obj--也就是我们动态的series数组。
调用次函数是--
var afterChart = echarts.init(document.getElementById('after-height'));
afterChart.clear();
setEcharts(afterChart,seriesObj);
这是画出来的图,但是图的趋势却是错误的。数据是正常的。
其中需要注意的有2点--
1.clear();函数,就是清空画布的作用,
2,box.setOption(optionZhe,true);
3.注意stack---数据堆叠,同个类目轴上系列配置相同的stack
值后,后一个系列的值会在前一个系列的值上相加。
所以最后的解决方法是,,stack去掉,,或者stack给不同的值。。