zoukankan      html  css  js  c++  java
  • 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 
    };
    

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

  • 相关阅读:
    微信小程序购物商城系统开发系列-工具篇
    CSS实现导航条Tab切换的三种方法
    最详细win7下手动搭建PHP环境:apache2.4.23+php7.0.11
    读书笔记:《HTML5开发手册》Web表单
    jQuery可拖拽3D万花筒旋转特效
    框架基础:关于ajax设计方案(三)---集成ajax上传技术
    框架基础:ajax设计方案(二)---集成轮询技术
    框架基础:ajax设计方案(一)---集成核心请求
    Apache+PHP+MySQL
    自学 PHP,如何不走弯路?
  • 原文地址:https://www.cnblogs.com/liliy/p/14785634.html
Copyright © 2011-2022 走看看