重点科目列支情况echarts shadow配置项内容和展示

多x轴和y轴,堆叠柱状图

配置项如下
      var xData = ['业务招待费', '业务宣传费', '办公费', '会议费']; //x轴名称
var xeData = [5000, 3000, 1000, 500, ]; //限额数据
var zcData = [2000, 450, 100, 0, ]; //累计支出
var syData = [3000, 2550, 900, 500]; //剩余额度
var perxeData = []; //限额总数
var perzcData = []; //支出占用百分比
var persyData = []; //剩余占用百分比
for (var i = 0; i < xeData.length; i++) {
    perxeData[i] = 100; //限额总数
    perzcData[i] = zcData[i] / xeData[i] * 100; //累计支出÷科目限额
    persyData[i] = syData[i] / xeData[i] * 100; //剩余支出÷科目限额
}
//特别说明:series顺序不可随意调整
option = {
    title: {
        text: '重点科目列支情况',
        x: 'center'
    },
    tooltip: {
        trigger: 'axis',
        axisPointer: {
            type: 'shadow',
        },

        formatter: '{b}<br />{a0}: {c0}({c3}%)<br />{a2}: {c5}({c2}%)<br />{a1}: {c4}({c1}%)',
    },
    legend: {
        bottom: 0,
        selectedMode: false,
        data: ['科目限额', '累计支出', ]
    },
    yAxis: [{
            type: 'value',
            axisLabel: {
                formatter: function(value, index) {
                    return value + '%'; //保留小数位数
                }
            }
        },
        {
            show: true,
            type: 'value',
        }
    ],
    xAxis: [{
            type: 'category',
            data: xData
        },
        {
            type: 'category',
            axisLine: {
                show: false
            },
            axisTick: {
                show: false
            },
            axisLabel: {
                show: false
            },
            splitArea: {
                show: false
            },
            splitLine: {
                show: false
            },

            data: xData
        },
    ],
    series: [{
        name: '科目限额',
        type: 'bar',
        barGap: '-100%',
        xAxisIndex: 1,
        itemStyle: {
            normal: {
                color: 'rgba(128, 128, 128, 0.1)',
                borderWidth: 2,
                borderType: 'dotted',
                borderColor: 'rgba(128, 128, 128, 0.1)'

            }
        },
        data: perxeData
    }, {
        name: '科目限额',
        type: 'bar',
        yAxisIndex: 1,
        itemStyle: {
            label: {
                show: true,
                position: 'top',
                color: '#fff',
            },
            normal: {
                color: 'rgba(128, 128, 128, 0)',
                borderWidth: 2,
                borderType: 'dotted',
                borderColor: 'rgba(128, 128, 128, 0)'
            }
        },
        data: xeData,
    }, {
        name: '累计支出',
        type: 'bar',
        stack: '堆叠',
        silent: true,
        itemStyle: {
            normal: {
                label: {
                    show: true,
                    position: 'left',
                    formatter: function(p) {
                        return p.value + '%';
                    },
                    color: '#c23531'
                },
            }
        },
        barGap: '-100%',
        data: perzcData,
    }, {
        name: '累计支出',
        type: 'bar',
        xAxisIndex: 1,
        yAxisIndex: 1,
        itemStyle: {
            normal: {
                label: {
                    show: true,
                    position: 'inside',
                    color: '#000'
                },
            }
        },
        data: zcData,
    }, {
        name: '剩余额度',
        type: 'bar',
        stack: '堆叠',
        silent: true,
        barGap: '-100%',
        itemStyle: {
            normal: {
                label: {
                    show: true,
                    position: 'inside',
                    formatter: function(p) {
                        return p.value + '%';
                    },
                    color: '#000'
                },
                color: 'rgba(128, 128, 128, 0.1)',
                borderWidth: 2,
                borderType: 'dotted',
                borderColor: '#000'

            }
        },
        data: persyData,
    }, {
        name: '剩余额度',
        type: 'bar',
        xAxisIndex: 1,
        yAxisIndex: 1,
        itemStyle: {
            normal: {
                label: {
                    show: true,
                    position: 'left',
                },
                color: 'rgba(128, 128, 128, 0)',
                borderWidth: 0,
                borderColor: '#000'

            }
        },
        data: syData,
    }, ]
}
    
截图如下