双柱状图 数据堆叠 类目轴 时间轴

描述:当前是关于Echarts图表中的 柱状图 示例。
 
            
var color=['#5472d3',"#6f42c1","#fc4150","#ff9100","#00785d","#009afe","#0d47a1","#310581",'#c50010',
    "#c56200",'#03b88f','#bfbfbe'];
var data = [];
var name=[];

function randomData() {
    now = new Date(+now + oneDay);
    value = value + Math.random() * 21 - 10;
    return {
        name: now.toString(),
        value: [
        [now.getFullYear(), now.getMonth() + 1, now.getDate()].join("/"),
        Math.round(value),Math.round(value)
        ]
    };
}
 
var now = +new Date(2020, 9, 0);
var oneDay = 24 * 3600 * 1000;
var value = Math.random() * 1000;
for (var i = 0; i < 30; i++) {
    data.push(randomData());
}
var data1=[];
data.map(function(e){
    data1.push({name:e.value[0],value:e.value[1]})
     name.push(e.value[0])
})
var Data=[];
for(var i=0;i<10;i++){
    Data.push({name:'设备类'+i,value:data})
}

var series=[];
Data.map(function(d,i){
    series.push({
            name: d.name,
            type: 'bar',
            barWidth:'50%',
            stack: '维修',
            itemStyle: {
                normal: {
                    color:color[i]
                }
            },
            data: data1
        })
        series.push({
            name: d.name,
            type: 'bar',
            barWidth:'50%',
            stack: '成本',
            xAxisIndex: 1,
            yAxisIndex: 1,
            itemStyle: {
                normal: {
                    color:color[i]
                }
            },
            data: data
        })
})

var xAxis=[];
var yAxis=[];
for(var i=0;i<2;i++){
    xAxis.push({
        type: 'category',
        data:name,
        interval:0,
        axisLabel: {
            textStyle: {
                color: '#515562',
                fontSize:12,
            },
            formatter: function (value) {
                return new Date(value).format("dd");
            },
        },
        splitLine: {
            show:true,
            lineStyle: {
                color:"#c9cfec"
            }
        },
    })
    yAxis.push({
        axisLabel: {
            textStyle: {
                color: '#515562',
                fontSize:12,
            },
        },
        splitLine: {
            lineStyle: {
                color:"#c9cfec"
            }
        },
        axisTick: {
            show: false
        },
        axisLine: {
            show:false,
        },
       
    })
    if(i==1){
        xAxis[1].type='time',
        xAxis[1].interval=oneDay,
        xAxis[1].gridIndex=1;
        yAxis[1].gridIndex=1;
    }
}


option = {
    backgroundColor: "#ffffff",
        title: [{
        text: "设备运维计划维修统计(大修)",
        left: "3%",
        top: '7%',
        textStyle: {
          fontSize: 16
        },
      },{
        text: "设备运维计划成本统计(大修)",
        left: "3%",
        top: '54%',
        textStyle: {
          fontSize: 16
        },
      }],
    legend: {
        top:'2%',
        left:'10%',
        right:'10%',
        icon:"rect",
        itemWidth: 19,
        itemHeight: 12,
        orient: "horizontal",
        textStyle: {
          color: "#000931",
          fontSize: 14
        }
    },
    tooltip: {
    trigger: 'axis',
    show:true,
},
toolbox: [{
        top:'7%',
        right:25,
        show: true,
        iconStyle:{
            borderColor:'#626366'
        },
        feature: {
            magicType: {
                type: ['line', 'bar'],
            },
            restore: {},
            saveAsImage: {}
        }
    },{
        top:'54%',
        right:25,
        show: true,
        iconStyle:{
            borderColor:'#626366'
        },
        feature: {
            magicType: {
                type: ['line', 'bar'],
            },
            restore: {},
            saveAsImage: {}
        }
    }],
    grid: [{
        left: '60',
        right: '30',
        height:'38%',
        top: '10%',
    },
    {
        left: '60',
        right: '30',
        height:'38%',
        top:'57%',    }
    ],
    xAxis:xAxis ,
    yAxis:yAxis,
    series: series
};

Date.prototype.format = function (fmt) {
    var o = {
        "M+": this.getMonth() + 1, //月份
        "d+": this.getDate(), //日
        "h+": this.getHours(), //小时
        "m+": this.getMinutes(), //分
        "s+": this.getSeconds(), //秒
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度
        "S": this.getMilliseconds() //毫秒
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
        if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
}