一开始series有5条数据(s1),我要把它合并成2条(s2),但是只能修改是s1的前2条变成s2,s1剩下的3条依旧不变。
一句话就是,我改不了series的条数(点击自定义toolbox有具体输出)
配置项如下
var isper=false;
var xdata=['周一','周二','周三','周四'];
var ydata=['自费1', '医保1','自费2','医保2','医保3'];
var vdata=[ [101, 201, 301, 401],
[111, 211, 311, 411],
[102, 202, 302, 402],
[112, 212, 312, 412],
[113, 213, 313, 413]];
var category=[
{name:'自费',data:['自费1','自费2']},
{name:'医保',data:['医保1','医保2', '医保3']}
]
var arr_series=[]
$.each(vdata,function(i,v){
arr_series.push({
name:ydata[i],
type:'bar',
stack:'all',
data:v
})
})
option = {
tooltip : {
trigger: 'axis',
axisPointer : { // 坐标轴指示器,坐标轴触发有效
type : 'shadow' // 默认为直线,可选为:'line' | 'shadow'
}
},
toolbox:{
feature:{
myTool2: {
show: true,
title: '自定义扩展方法',
icon: 'image://http://echarts.baidu.com/images/favicon.png',
onclick: function(obj,e){
debugger
if(!isper){
var newseries=[];
var newyd=[];
//父级分类
$.each(category,function(ic,cate){
var cvd=[];
newyd.push(cate.name);
$.each(ydata,function(iy,v){
if($.inArray(v,cate.data)!=-1){
vdata[iy].reduce(function(a,b,i){
if(i==vdata[iy].length)
{cvd[i]+=vdata[iy][i];}
})
$.each(vdata[iy],function(ind,v){
if(cvd[ind]==null)
{cvd[ind]=0;}
cvd[ind]+=v;
})
}
})
newseries.push({
name:cate.name,
type:'bar',
stack:'all',
data:cvd
});
})
console.log(newseries);
console.log(obj.option.series)
echarts.getInstanceByDom(e.getDom()).setOption({
series: newseries,
yAxis:[{data:newyd}],
legend:[{data:newyd}]
})
var newoption=e.getOption();
newoption.series=newseries;
echarts.getInstanceByDom(e.getDom()).setOption(newoption)
console.log(obj.option.series)
isper=!isper;
}else{
echarts.getInstanceByDom(e.getDom()).setOption({
series: arr_series
})
isper=!isper;
}
}
}
}
},
legend: {
data: ydata
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: {
type: 'category',
data: xdata
},
yAxis: {
type: 'value'
},
series: arr_series
};