• Echarts柱状图多个,解决柱状图显示位置问题(错位显示)


    1、需求
    1.1、解决后端返回数据为空时,柱状图显示位置问题(错位显示)
    1.2、数据格式转换
    2、后端数据返回0
    2.1、实现效果


    2.2、完整代码

    var departmentArr = [];
    var histogramData ={
        "2021/05/05":[{
            "orderTime":null,
            "departmentCategory":0,
            "department":"华南",
            "couponNum":0
        },{
            "orderTime":null,
            "departmentCategory":1,
            "department":"华北",
            "couponNum":0
        }],
        "2021/05/06":[{
            "orderTime":null,
            "departmentCategory":0,
            "department":"华南",
            "couponNum":0
        },
        {
            "orderTime":null,
            "departmentCategory":1,
            "department":"华北",
            "couponNum":0
        }]
    }
    var  labelOption = {
        show: true,
        position: "insideBottom",
        distance: 15,
        align: "left",
        verticalAlign: "middle",
        rotate: 90,
        formatter: '{c}  {name|{a}}',
        fontSize: 16,
        rich: {
            name: {
            }
        }
     };
    xaxis=[];
    datas=[];
    series=[];
    Object.keys(histogramData).forEach((key) => {
        xaxis.push(key)
        histogramData[key].forEach((d,i)=>{
            if(datas[d.department]){
               datas[d.department].push(d.couponNum)
            }else{
               datas[d.department] = [d.couponNum]
            }
        })
      })
    Object.keys(datas).forEach((key)=>{
      series.push({
        name:key,
        type:'bar',
        barGap: 0,
        emphasis: {
            focus: 'series'
        },
        label: labelOption,
        data:datas[key]
      })
    })
    Object.keys(datas).forEach((key) => {
     departmentArr.push(key)  
    })
    option = {
        tooltip: {
            trigger: 'axis',
            axisPointer: {
                type: 'shadow'
            }
        },
        legend: {
            data: departmentArr
        },
        xAxis: [
            {
                type: 'category',
                axisTick: {show: false},
                data: xaxis
            }
        ],
        yAxis: [
            {
                type: 'value'
            }
        ],
        series:series 
    };
    

    3、后端将数据为0的去掉,返回 []
    3.1、实现效果

    3.2、完整代码

    var departmentArr = [];
    var histogramData ={
        "2021/05/05":[{
            "orderTime":null,
            "departmentCategory":0,
            "department":"华南",
            "couponNum":2
        }, ],
        "2021/05/06":[],
        "2021/05/07":[{
            "orderTime":null,
            "departmentCategory":0,
            "department":"华南",
            "couponNum":12
        },
        {
            "orderTime":null,
            "departmentCategory":1,
            "department":"华北",
            "couponNum":7
        }]
    }
    var  labelOption = {
        show: true,
        position: "insideBottom",
        distance: 15,
        align: "left",
        verticalAlign: "middle",
        rotate: 90,
        formatter: '{c}  {name|{a}}',
        fontSize: 16,
        rich: {
            name: {
            }
        }
     };
    xaxis=[];
    datas={};
    series=[];
    noData=[]
    Object.keys(histogramData).forEach((key) => {
        histogramData[key].forEach((d,i)=>{
            datas[d.department]=[]
        })
    })
    
    Object.keys(datas).forEach((datakey)=>{
      Object.keys(histogramData).forEach((key) => {
        let value = null;
        histogramData[key].forEach((d,i)=>{
            if(d.department == datakey){
                value = d.couponNum
            }
        })
        datas[datakey].push(value)
      })
    })
    Object.keys(datas).forEach((key) => {
     departmentArr.push(key)  
    })
    Object.keys(histogramData).forEach((key) => {
     xaxis.push(key)  
    })
    Object.keys(datas).forEach((key)=>{
      series.push({
        name:key,
        type:'bar',
        barGap: 0,
        emphasis: {
            focus: 'series'
        },
        label: labelOption,
        data:datas[key]
      })
    })
    option = {
        tooltip: {
            trigger: 'axis',
            axisPointer: {
                type: 'shadow'
            }
        },
        legend: {
            data: departmentArr
        },
        xAxis: [
            {
                type: 'category',
                axisTick: {show: false},
                data: xaxis
            }
        ],
        yAxis: [
            {
                type: 'value'
            }
        ],
        series:series 
    };
    

    声明:此博客为个人学习之用,如与其他作品雷同,纯属巧合,并请明示指出

  • 相关阅读:
    变态跳台阶
    循环删除元素,返回最后一个被删除元素的下标
    阿拉伯数字转中文大写
    最长相同子串
    最多购买种类
    win10 64位 安装scrapy
    requests+正则爬取猫眼电影前100
    Django forms表单 select下拉框的传值
    更改静态图片后,前端依旧显示之前的图片
    阿里云远程连接CentOS
  • 原文地址:https://www.cnblogs.com/liliy/p/14785634.html
Copyright © 2020-2023  润新知