自动化瀑布图且按时间顺序出现瀑布echarts category配置项内容和展示

配置项如下
      //在yourdata中填入数据,增加为正数,减少为负数
// var yourdata=[91, 526, 423, 2404, -473, 11178, -5174, 1970, 791, -843, 2847, 2908, -690, 225, -812, 1921, -11223, -523, 2624, 277, 800, 777, -205, -657, -462, 883, 434, 539, 2014, 882, 1622, -2241, 299, -1635, 1110, -2633, 598, -2298, 1628, 378, 782, 284, -3713, 761, 338, 799, -926, -459, 996, -208, 546, 250, 888, 568, 891, 998, -355, 929, 550, -246, -399, -292, -566, -182, -799, -97, -455, -484, 308, 329, 533, -485, -1753, 227, -4103, 319, 818, 1297, 482, 819, 964, 790, -888, 964, -133, 557, 751, 431, 766, -137, 682, -261, 768, 671, 146, -2205, -977, -723, -29, -486, -181, 965, -194, -113, 517, -603, -451, 948, 806, 673, -308, -340, -2425, 822, 820, 900, -308, 946, 253, 459, 30, 923, 249, 3153, -550, -72, 374, 809, -251, -147, 140, -3707, -535, 954, 431, 172, -381, 345, -536, -818, -495, 2438, -788, 782, 836, -668, -312, -151, -33, 539, -492, 49, 934, -635, 237, -361, -19, 967, -965, -603, -145, -642, -397, 825, -785, -123, -875, 395, 450, -234, -296, -278, -304, 819, -253, 307, -902, -938, 912, -896, 311, -48, -110, -842, -484, -658, -165, 519, -284, 21, 512, 527, -114, 936, -470, -385, -630, 775, 743, -450, -250, 663, 872, -249, 799, 660, 401, -396, -384, 674, -145, 768, 717, 934, 62, 111, 117, 10, 6, 551, 641, -37, 903, -426, 35, 632, -566, 639, -521, -653, -447, 380, -481, 868, -977, 834, -862, -37, -853, -612, 137, -867, 82, 577, -907, -268, 722, 220, 390, 385, -832, 579, 468, -181, -407, 775, 448, 528, 768, 402, -318, -6, -563, -303, -597, 502, -492, 36, -766, -24, 44, 233, 688, -647, -328, 25, 582, 494, 219, 362, 829, 641, 290, 696, 940, 598, 470, -125, -234, -386, -800, -326, 415, 494, -487, -79, 79, 897, -171, -99, 376, -39, -919, -160, 580, -19, -894, 347, -957, 294, -289, -518, -311, -124, 765, 922, 145, 349, -111, 50, 399, -693, 696, -964, 121, 99, -844, 117, -98, 110, 654, 411, -571, -238, -291, 92, -624, 291, 188, -147, 136, 117, -498, 944, 916, -988, -583, -50, 225, -822, 170, -34, 849, -920, -379, -644, 393, -908, -835, 895, 16, -682, 836, 967, 572, 333]
//在xaxisdata中填入x轴的数据
var yourdata=[]
var dep=[-65.17, -66.35, -71.54, -69.94, -77.82, -87.15, -96.63, -103.23, -119, -111.16, -124.77, -134.47, -137.01, -150.38]
var fcs=[97.43, 105.72, 108.44, 109.06, 123.54, 133.95, 146.27, 140.12, 163.79, 166.96, 165.11, 185.32, 192.77, 200.13]
var xaxisdata=['2001_fcs', '2001_dep', '2002_fcs', '2002_dep', '2001_fcs', '2001_dep', '2002_fcs', '2002_dep', '2001_fcs', '2001_dep', '2002_fcs', '2002_dep', '2001_fcs', '2001_dep', '2002_fcs', '2002_dep', '2001_fcs', '2001_dep', '2002_fcs', '2002_dep', '2001_fcs', '2001_dep', '2002_fcs', '2002_dep', '2001_fcs', '2001_dep', '2002_fcs', '2002_dep']
//出现时间间隔
var timeinterval=300
//是否出现标签
var yesorno=true
for (var i=0;i<dep.length;i++){
    yourdata.push(Math.round(fcs[i],0))
    yourdata.push(Math.round(dep[i],0))
}
console.log(yourdata)
console.log(xaxisdata)
//求出右图中的顶点,为确定y轴的最大值做准备
function maxsum(data) {
    var x = 0;
    var list = []
    for (var i = 0; i < data.length; i++) {
        x = x + data[i];
        list.push(x)
    };
    return Math.max.apply(null, list)
}
//求出y轴的最大值
function getymax() {
    var data = maxsum(yourdata)
    var length = Math.floor(Math.log10(data)) -1
    var yaxismax = Math.ceil(data / Math.pow(10, length)) * Math.pow(10, length)
    return yaxismax

}
function mean(arr,sign){
    var count1=0;
    var count2=0;
    var sum1=0;
    var sum2=0;
    for(var i = 0; i < arr.length; i++){
        if (arr[i]>0){
            count1+=1
            sum1 += arr[i];
        }else{
            count2+=1
            sum2 +=arr[i]
        }
    }
    if (sign==0){
        return Math.round(sum1/count1)
    }else{
        return Math.round(Math.abs(sum2/count2))
    }

}

var ymax = getymax()
var updata = [];
var downdata = [];
var auxdata = [];
var sum = 0
//求出各个系列的值
for (var i = 0; i < yourdata.length; i++) {
    auxdata.push(sum)
    if (yourdata[i] > 0) {
        updata.push(yourdata[i])
        downdata.push('-')
    } else {
        updata.push('-')
        downdata.push(Math.abs(yourdata[i]))
    }
    sum = sum + yourdata[i]
};
// console.log(mean(yourdata,1))
auxdata.slice(0, yourdata.length - 1)

option = {
    title: [{
        text: '阶梯瀑布图',
        subtext: '修改自官网by小白高'
    },

    ],
    //     dataZoom: [
    //     {
    //         type: 'inside',
    //         start: 0,
    //         end: 10
    //     },
    //     {
    //         show: true,
    //         type: 'slider',
    //         y: '90%',
    //         start: 50,
    //         end: 100
    //     }
    // ],
    toolbox: {
        feature: {
            magicType: {
                type: ['line','bar']
            },
            saveAsImage: {
                show: true,
            }
        }
    },
    tooltip: {
        trigger: 'axis',
        axisPointer: { // 坐标轴指示器,坐标轴触发有效
            type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
        },
        formatter: function(params) {
            var tar;
            if (params[1].value != '-') {
                tar = params[1];
            } else {
                tar = params[2];
            }
            return tar.name + '<br/>' + tar.seriesName + ' : ' + tar.value;
        }
    },
    legend: {
        data: ['支出', '收入']
    },
    grid: {
        left: '3%',
        right: '4%',
        bottom: '3%',
        containLabel: true
    },
    xAxis: {
        type: 'category',
        splitLine: {
            show: false
        },
        data: xaxisdata
    },
    yAxis: [{
        splitLine:{
            show:false
        },
            type: 'value',
            max: ymax
        },
        {
            type: 'value',
            max: ymax,
            inverse: true,
            show: false
        }
    ],
    series: [{
            name: '辅助',
            type: 'bar',
            stack: '总量',
            itemStyle: {
                normal: {
                    barBorderColor: 'rgba(0,0,0,0)',
                    color: 'rgba(0,0,0,0)'
                },
                emphasis: {
                    barBorderColor: 'rgba(0,0,0,0)',
                    color: 'rgba(0,0,0,0)'
                }
            },
            data: auxdata,
        },
        {
            name: '收入',
            type: 'bar',
            stack: '总量',
            label: {
                normal: {
                    show: yesorno,
                    fontSize:10,
                    position: 'top'
                }
            },
            data: updata,
            animationDelay: function(idx) {
                return idx * timeinterval;
            }

        },
        {
            name: '支出',
            type: 'bar',
            yAxisIndex: 1,
            stack: '总量',
            label: {
                normal: {
                    fontSize:10,
                    show: yesorno,
                    position: 'bottom'
                }
            },
            data: downdata,
            animationDelay: function(idx) {
                return idx * timeinterval;
            }
        }
    ],
    animationEasing: 'elasticOut',
    animationDelayUpdate: function(idx) {
        return idx * 5;
    }
};
    
截图如下