数组重复的元素以键值对形式储存 | 取出键值数组的属性或值

1、这里的i就是一个计数器,当遇到相同的时本身加1,起到一个计算的作用 

2、取出键值数组的值,也就是上面计数的数值

3、取出键值数组的属性,也就是上面数组的属性名

 这样我们就把我们需要的数据分开存储在了两个数组里面

4、有以下要求:

用echarts画一个柱状图

// 柱状图的配置
    initEcharts() {
      const option = {
        color: ['#99ccff'],
        title: {
          text: '柱状图人员统计'
        },
        tooltip: {},
        legend: {
          data: ['人数']
        },
        xAxis: {
          type: 'category',
          data: this.countName
        },
        yAxis: {
          type: 'value'
        },
        series: [
          {
            name: '人数',
            data: this.countDigital,
            type: 'bar', //类型为柱状图
            showBackground: true,
            backgroundStyle: {
              color: 'rgba(180, 180, 180, 0.1)'
              // color: '#9F8F6'
            }
          }
        ]
      };
      const myChart = echarts.init(this.$refs.mychart); // 图标初始化
      myChart.setOption(option); // 渲染页面
      //随着屏幕大小调节图表
      window.addEventListener('resize', () => {
        myChart.resize();
      });
    },

还有一个饼状图:

这里有一个值得注意的地方就是饼状图需要的数据格式是键值数组,那我们就需要把刚刚分开的那两个数组进行合并键值对象数组

// 饼状图的配置
    initPie() {
      // 把科室名和科室人数转换为echarts所需要的格式,即把两个数组转成一个对象数组

      for (let index in this.countName) {
        // console.log('11' + this.countName);
        this.pieData.push({
          value: this.countDigital[index],
          name: this.countName[index]
        });
        4;
      }
      console.log(this.pieData);

      const option = {
        title: {
          text: '饼状图人员统计',
          subtext: 'Data',
          left: 'center'
        },
        tooltip: {
          trigger: 'item'
        },
        legend: {
          orient: 'vertical',
          left: 'left'
        },
        series: [
          {
            name: 'Access From',
            type: 'pie', //类型为饼状图
            radius: '50%',
            data: this.pieData,
            emphasis: {
              itemStyle: {
                shadowBlur: 10,
                shadowOffsetX: 0,
                shadowColor: 'rgba(0, 0, 0, 0.5)'
              }
            }
          }
        ]
      };
      const myChart = echarts.init(this.$refs.pie); // 图标初始化
      myChart.setOption(option); // 渲染页面
      //随着屏幕大小调节图表
      window.addEventListener('resize', () => {
        myChart.resize();
      });
    }

5、注意 在此过程中因为我们数据获取需要时间,当我们push进数组的时候还没有得到数据,所有可能会出现页面不会展示图表的情况,我们需要设一个定时器,当然这是比较简单的方法但是有时候网络慢一点获取没有那么快也是会出问题

 setTimeout(() => {
      console.log('这是要开始用了' + this.countName);
      this.initEcharts();
      this.initPie();
    }, 1500);

上一步实在mounted实施的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值