配置项如下
option = {
title: {
text: '堆叠柱状图label显示总数'
},
xAxis: {
data: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
},
legend:{
},
yAxis: {},
series: [{
name: 's1',
type: 'bar',
stack: '1',
data:[220, 182, 191, 234, 290, 330, 310],
label: {
show: false,
position: 'top',
color: '#333',
formatter: function(params){
params.value
}
}
},{
name: 's2',
type: 'bar',
stack: '1',
data:[220, 182, 191, 234, 290, 330, 310],
label: {
show: false,
position: 'top',
color: '#333',
formatter: function(params){
params.value
}
}
}]
};
var series = option["series"];
var fun = function (params) {
var datavalue = 0;
for (var i = 0; i < series.length; i++) {
datavalue += series[i].data[params.dataIndex]
}
return datavalue;
}
if (series[series.length - 1]) {
series[series.length - 1]["label"]["show"] = true;
series[series.length - 1]["label"]["formatter"] = fun;
}
myChart.on("legendselectchanged", function(obj){
var b = obj.selected,//图例的选中情况,key是图例的name,value是true或false
d=[];//选中的series的index列表
for(var key in b){
if(b[key]){//选中的图例
for(var i = 0; i < series.length; i++){
var changename = series[i]["name"];
if(changename == key){
d.push(i);//选中的series的index列表
}
}
}
}
var fn = function(params){
var datavalue = 0;
for(var i = 0; i < d.length; i++){
for(var j =0; j < series.length; j++){
if(d[i] == j){
datavalue += series[j].data[params.dataIndex];
}
}
}
return datavalue;
}
for(var i = 0; i < series.length; i++){
series[i]["label"]["show"] = false;
}
var l_s = series[d[d.length-1]];//选中的series的最后一个
l_s["label"]["show"] = true;//显示label
l_s["label"]["formatter"] = fn;//绑定formatter
myChart.setOption(option)
})