堆叠柱形图

描述:当前是关于Echarts图表中的 柱状图 示例。
 
            //实现二:
function isHasElementTwo(arr,value){
    var str = arr.toString();
	var index = str.indexOf(value);
	if(index >= 0){
	   //存在返回索引
	   var reg1 = new RegExp("((^|,)"+value+"(,|$))","gi");
	   return str.replace(reg1,"$2@$3").replace(/[^,@]/g,"").indexOf("@");
	}else{
		return -1;//不存在此项
	}

}
datas = {
    name:"综治",
    nameArr:['电话举报','领导上报','监督员上报','群众上报'],
    dataArr:[[30],[80],[50],[20]],
    perArr:[10,50,30,10]
}
colors = ['#0263FF','#CB3D21','#F1C551','#8E30FF'];

let seriesArr = [];
datas.nameArr.forEach(function(name,index){
    var  shadowOffsetX = 0;
    if(index!=0)  shadowOffsetX= -20
    seriesArr.push( {
            name: name,
            type: 'bar',
            stack: '案件数',
            barWidth: 30,
            itemStyle:{
                normal: {
                    color: colors[index],
                    barBorderRadius: [20, 20, 20, 20],
                    shadowOffsetX:shadowOffsetX,
                    shadowColor: colors[index],
                }
            },
            label: {
                normal: {
                    show: true,
                    position: 'insideRight'
                }
            },
            z:   datas.nameArr.length - index,
            data: datas.dataArr[index]
        },)
})
option = {
    backgroundColor:"#000",
    tooltip : {
        trigger: 'axis',
        axisPointer : {            // 坐标轴指示器,坐标轴触发有效
            type : 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
        }
    },
    legend: {
        data: datas.nameArr,
        icon:"circle",
        itemGap: 50,
        itemWidth:10,
        itemHeight: 10,
        top:"30%",
        formatter: function (name) {
            var index = isHasElementTwo(datas.nameArr,name)
             return '{name|'+name+'}\n{num|'+datas.dataArr[index][0]+'}{split| / }{per|'+datas.perArr[index]+'}{cell| %}'
        },
        width:300,
        textStyle:{
            rich:{
                
                name:{
                    fontSize: 11,
                    fontFamily: 'FZLanTingHei-L-GBK',
                    fontWeight: 400,
                    color: '#FFFFFF',
                     padding:[35,0,0,0]
                },
                num:{
                    fontSize: 32,
                    fontFamily: 'DigifaceWide',
                    fontWeight: 400,
                    color: '#69A3FF',
                   //  padding:[-40,0,0,0]
                },
                split:{
                    fontSize: 16,
                    fontFamily: 'Avanti',
                    fontWeight: 400,
                    color:' #8CACFF',
                  //  padding:[-40,0,0,0]
                },
                per:{
                     fontSize: 14,
                    fontFamily: 'Avanti',
                    fontWeight: 400,
                    color:' #8CACFF',
                   //padding:[-40,0,0,0]
                },
                cell:{
                     fontSize: 12,
                    fontFamily: 'Avanti',
                    fontWeight: 400,
                    color:' #8CACFF',
                    // padding:[-40,0,0,0]
                }
            }
        }
    },
    grid: {
        left: '3%',
        right: '4%',
        bottom: '30%',
        top:0,
        containLabel: true
    },
    xAxis:  {
        type: 'value',
     axisLabel:{
            show:false
        },
        axisLine:{
            show:false
        },
        splitLine:{
            show:false
        },
        axisTick:{
             show:false
        }
    },
    yAxis: {
        type: 'category',
        data:datas.name,
        axisLabel:{
            show:false
        },
        axisLine:{
            show:false
        },
        splitLine:{
            show:false
        },
        axisTick:{
             show:false
        }
    },
    series:seriesArr
};