前端整合ECharts

1、简介

ECharts是百度的一个项目,后来百度把Echart捐给apache,用于图表展示,提供了常规的折线图柱状图散点图饼图K线图,用于统计的盒形图,用于地理数据可视化的地图热力图线图,用于关系数据可视化的关系图treemap旭日图,多维数据可视化的平行坐标,还有用于 BI 的漏斗图仪表盘,并且支持图与图之间的混搭。

官方网站:https://echarts.baidu.com/

2、基本使用

入门参考:官网->文档->教程->5分钟上手ECharts

(1)创建html页面:柱图.html

(2)引入ECharts

<!-- 引入 ECharts 文件 -->

<script src="echarts.min.js"></script>

2

(3)定义图表区域

1

<!-- 为ECharts准备一个具备大小(宽高)的Dom -->

<div id="main" style="width: 600px;height:400px;"></div>

2

(4)渲染图表

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>ECharts</title>
    <!-- 引入刚刚下载的 ECharts 文件 -->
    <script src="echarts.js"></script>
  </head>
  <body>
    <!-- 为 ECharts 准备一个定义了宽高的 DOM -->
    <div id="main" style="width: 600px;height:400px;"></div>
    <script type="text/javascript">
      // 基于准备好的dom,初始化echarts实例
      var myChart = echarts.init(document.getElementById('main'));

      // 指定图表的配置项和数据
      var option = {
        title: {
          text: 'ECharts 入门示例'
        },
        tooltip: {},
        legend: {
          data: ['销量']
        },
        xAxis: {
          data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
        },
        yAxis: {},
        series: [
          {
            name: '销量',
            type: 'bar',
            data: [5, 20, 36, 10, 10, 20]
          }
        ]
      };

      // 使用刚指定的配置项和数据显示图表。
      myChart.setOption(option);
    </script>
  </body>
</html>

27

3、折线图

实例参考:官网->实例->官方实例 https://echarts.baidu.com/examples/

折线图.html

option = {
  xAxis: {
    type: 'category',
    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
  },
  yAxis: {
    type: 'value'
  },
  series: [
    {
      data: [150, 230, 224, 218, 135, 147, 260],
      type: 'line'
    }
  ]
};

二、项目中集成ECharts

1、安装ECharts

npm install --save echarts@4.1.0

2、增加路由

src/router/index.js

在统计分析路由中增加子路由

{
    path: '/sta',
    component: Layout,
    redirect: '/sta/create',
    name: '统计分析',
    meta: { title: '统计分析', icon: 'example' },
    children: [
      {
        path: 'create',
        name: '生成数据',
        component: () => import('@/views/sta/create'),
        meta: { title: '生成数据', icon: 'table' }
      },
      {
        path: 'show',
        name: '图表显示',
        component: () => import('@/views/sta/show'),
        meta: { title: '图表显示', icon: 'tree' }
      }
    ]
  },

3、创建组件

<template>
  <div class="app-container">
    <!--表单-->
    <el-form :inline="true" class="demo-form-inline">

      <el-form-item label="日期">
        <el-date-picker
          v-model="day"
          type="date"
          placeholder="选择要统计的日期"
          value-format="yyyy-MM-dd"
        />
      </el-form-item>

      <el-button
        :disabled="btnDisabled"
        type="primary"
        @click="create()"
      >生成</el-button>
    </el-form>

  </div>
</template>
<script>
import sta from '@/api/sta'
export default {
  data() {
    return {
      day: '',
      btnDisabled: false
    }
  },
  created() {

  },
  methods: {
    create() {
      sta.createStaData(this.day)
        .then(response => {
          // 提示信息
          this.$message({
            type: 'success',
            message: '生成数据成功!'
          })
          // 跳转到图表显示页面
          this.$router.push({ path: '/sta/show' })
        })
    }
  }
}
</script>

61

三、完成后端业务

1、controller

 @GetMapping("getShowData/{type}/{begin}/{end}")
    public R getShowData(@PathVariable String type,@PathVariable String begin,@PathVariable String end){
        Map<String,Object> map = statisticsDailyService.getShowData(type,begin,end);
        return R.ok().data(map);
    }

2、service

接口

Map<String, Object> getShowData(String type, String begin, String end);

实现

 @Override
    public Map<String, Object> getShowData(String type, String begin, String end) {
        QueryWrapper<StatisticsDaily> queryWrapper = new QueryWrapper<>();
        queryWrapper.between("date_calculated",begin,end);
        queryWrapper.select("date_calculated",type);//查询需要的列,数据时间和类型
        List<StatisticsDaily> lists = baseMapper.selectList(queryWrapper);

        //返回的数据有两部分:date_calculated     和      所类型type
        //前端需要json数据,对于java代码的list集合,需要返回x、y轴两个list数据
        ArrayList<String> dateList = new ArrayList<>();
        ArrayList<Integer> typeList = new ArrayList<>();
        //遍历lists封装两个list集合
        for (StatisticsDaily list:lists){
            dateList.add(list.getDateCalculated());//封装日期

            if (type.equals("login_num")){//封装数量类型
                typeList.add(list.getLoginNum());
            }
            if (type.equals("register_num")){
                typeList.add(list.getRegisterNum());
            }
            if (type.equals("video_view_num")){
                typeList.add(list.getVideoViewNum());
            }
            if (type.equals("course_num")){
                typeList.add(list.getCourseNum());
            }
        }

        Map<String, Object> map = new HashMap<>();
        map.put("dateList",dateList);
        map.put("typeList",typeList);
        return map;
    }

四、前后端整合

1、创建api

import request from '@/utils/request'
export default {
  // 1 生成统计数据
  createStaData(day) {
    return request({
      url: '/staservice/sta/registerCount/' + day,
      method: 'post'
    })
  },
  // 2 获取统计数据
  getDataSta(searchObj) {
    return request({
      url: `/staservice/sta/showData/${searchObj.type}/${searchObj.begin}/${searchObj.end}`,
      method: 'get'
    })
  }
}

2、chart.vue中引入api模块

import sta from '@/api/sta'

3

3、修改initChartData方法

import echarts from 'echarts'
import staApi from '@/api/sta'

export default {
  data() {
    return {
      searchObj: {},
      btnDisabled: false,
      xData: [],
      yData: []
    }
  },
  methods: {
    showChart() {
      staApi.getDataSta(this.searchObj)
        .then(response => {
          console.log('*****************' + response)
          this.yData = response.data.numDataList
          this.xData = response.data.date_calculatedList

          // 调用下面生成图表的方法,改变值
          this.setChart()
        })
    },
    setChart() {
      // 基于准备好的dom,初始化echarts实例
      this.chart = echarts.init(document.getElementById('chart'))
      // console.log(this.chart)

      // 指定图表的配置项和数据
      var option = {
        title: {
          text: '数据统计'
        },
        tooltip: {
          trigger: 'axis'
        },
        dataZoom: [{
          show: true,
          height: 30,
          xAxisIndex: [
            0
          ],
          bottom: 30,
          start: 10,
          end: 80,
          handleIcon: 'path://M306.1,413c0,2.2-1.8,4-4,4h-59.8c-2.2,0-4-1.8-4-4V200.8c0-2.2,1.8-4,4-4h59.8c2.2,0,4,1.8,4,4V413z',
          handleSize: '110%',
          handleStyle: {
            color: '#d3dee5'

          },
          textStyle: {
            color: '#fff'
          },
          borderColor: '#90979c'
        },
        {
          type: 'inside',
          show: true,
          height: 15,
          start: 1,
          end: 35
        }],
        // x轴是类目轴(离散数据),必须通过data设置类目数据
       
    }
  }
}
</script>

4、修改options中的数据

1

xAxis: {
          type: 'category',
          data: this.xData
        },
        // y轴是数据轴(连续数据)
        yAxis: {
          type: 'value'
        },
        // 系列列表。每个系列通过 type 决定自己的图表类型
        series: [{
          // 系列中的数据内容数组
          data: this.yData,
          // 折线图
          type: 'line'
        }]
      }

      this.chart.setOption(option)

15

五、样式调整

参考配置手册:https://echarts.baidu.com/option.html#title

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: Layui是一款非常实用的前端框架,它提供了诸如表单、弹窗、导航、日期等常用组件,同时还有一些实用的模块,如laydate、laypage、laytpl和layupload等。其中,Layui前端的统计页面是一个非常重要的功能,它能够帮助我们方便地统计和展示各种数据。 Layui前端的统计页面支持多种图表类型,如折线图、柱状图、饼图和雷达图等等,用户可以根据实际需求选择相应的图表类型。除此之外,用户还可以自定义图表颜色、样式、大小以及坐标轴等属性,从而实现更加个性化的展示效果。 在使用Layui前端的统计页面时,用户可以通过ajax方式向后台请求数据,获取用户需要进行统计和展示的数据。同时,Layui还提供了一些实用的工具,如laydate日期选择器和laypage分页组件,让用户可以更加方便地进行数据查询和分页展示。 总之,Layui前端的统计页面功能十分强大,不仅可以帮助用户快速实现数据可视化,还可以实现更加高级的数据分析功能,是一个非常值得推荐的前端框架。 ### 回答2: layui前端提供了一个嵌入式的统计页面,确保通过与layui框架无缝集成来让统计页面更加高效,易于使用,使页面管理过程变得更不繁琐。这些可视化的数据可帮助您了解您的系统和应用程序在过去的某段时间内的关键趋势,从而为您的业务做出更有针对性的预测和更好的决策。这个统计页面包括各种统计图表,包括线图,柱状图,饼图,仪表盘,漏斗图等,以帮助用户更深入了解其数据。 此外,统计页面还提供了高度可配置的统计表格,以便用户快速而方便地查找和过滤所需信息。这些表格不仅可以显示基本计数器和百分比,还可以提供警报,使您能够实时接收有关您关注的有趣数据的警报。同时,该页面还具备了预定统计任务功能,使用户能够以规定的时间自动化地执行统计任务,省去了手动执行数据收集和转换的烦恼。 总的来说,layui前端的统计页面非常简单易用,同时也带来了诸多有益的数据可视化工具,使其成为现代企业的必备工具。无论您是企业所有者,IT专业人士,营销团队成员,还是需要不断监测业务趋势和需求的所有人员,都可以从该统计页面中受益。 ### 回答3: Layui是一款简洁易用的前端UI框架,它为前端开发者提供了丰富的UI组件和易于使用的API,方便开发者快速构建各类网站和应用。其中,Layui也提供了统计页面的组件,帮助开发者快速创建统计类的页面。 Layui的统计页面组件主要包含两个方面的功能,一是可视化图表,二是数据处理和展示。用户可以轻松地通过该组件创建各种常见的图表类型,如折线图、柱状图、饼状图等,同时也可以选择合适的颜色和样式进行自定义展示。对于数据处理和展示,Layui的组件能够支持用户的数据导入,处理和呈现,让使用者能够一目了然地了解自己的数据。 除此之外,Layui的统计页面组件还提供了一些其他特性,如数据的后台支持、图表的互动操作(如缩放、拖拽等)、数据的实时更新等,使开发者能够更加灵活和方便地处理数据,进行数据分析和呈现。 总之,Layui的统计页面组件为开发者提供了一种高效、易用的解决方案,使数据的处理和展示变得轻松便捷,为各行各业的人士带来了更加简单和高效的数据分析和展示方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林寻星辰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值