前端整合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: Spring Boot 集成 ECharts 可以使用前端 JavaScriptECharts 在 Spring Boot 项目中创建各种图表。步骤如下: 1. 在 pom.xml 中添加 ECharts 依赖: ``` <dependency> <groupId>com.github.abel533</groupId> <artifactId>echarts-java</artifactId> <version>1.1.2</version> </dependency> ``` 2. 创建一个包含 ECharts 图表的 HTML 文件,在其中引用 ECharts 文件: ``` <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="https://cdn.staticfile.org/echarts/4.9.0/echarts.min.js"></script> </head> <body> <div id="main" style="width: 600px;height:400px;"></div> <script type="text/javascript"> var myChart = echarts.init(document.getElementById('main')); // 这里可以写图表配置代码 </script> </body> </html> ``` 3. 在 Spring Boot 控制器中添加代码以返回该 HTML 文件: ``` @Controller public class EchartsController { @GetMapping("/echarts") public String echarts() { return "echarts"; } } ``` 这样,通过浏览器访问 `http://localhost:8080/echarts` 就可以看到 ECharts 图表了。 ### 回答2: Echarts是一款国内流行的数据可视化库,SpringBoot是目前Java领域中最为流行的轻量级Web框架之一,二者的结合使用能够实现高效的数据可视化展示。 SpringBoot整合Echarts的步骤主要分为以下几个方面: 1. 引入Echarts依赖和相应的js文件。 在pom.xml文件中引入echarts相关的依赖,同时在页面中引入echarts相关的js文件。 2. 在controller层中进行数据处理,并将数据传递给前端页面。 通过SpringBoot提供的数据处理方法,将数据处理成Echarts所需的格式。 3. 在前端页面中使用Echarts展示数据。 在前端页面使用Echarts提供的api进行数据展示,如: var myChart = echarts.init(document.getElementById('main')); myChart.setOption(option); 其中option为Echarts提供的数据展示配置项,可以根据需要进行相应的配置。比如可以设置图表类型、x、y轴标签、图例、颜色等相关配置。 综上,SpringBoot整合Echarts可以实现快速高效的数据可视化展示。在实际项目中,可以根据具体需求进一步优化Echarts的配置,以满足业务需求。 ### 回答3: Spring Boot 是一个相当流行的 Java 后端框架,它可以让开发者快速地创建一个企业级的 Web 应用程序。而 Echarts 是一款非常出色的数据可视化工具,能够使得数据的呈现更加生动、形象。那么,如何利用 Spring Boot 框架来整合 Echarts 组件呢? 首先,你需要在你的 Maven 项目中引入 Echarts 的相关依赖。这可以通过在 pom.xml 文件中添加 Maven 依赖,或者手动导入 jar 包的方式来完成。在你的 Spring Boot 应用程序中构建一个 Web 接口,让前端通过这个接口来获取数据,并渲染成 Echarts 图表。这个接口需要返回 JSON 格式的数据,这是 Echarts 能够解析和利用的格式。 在后端应用程序中,你需要编写相应的业务逻辑,将数据转换成 Echarts 能够渲染的数据格式。最常见的格式就是 series 数据。这个数据包含了图表中的所有数据,以及这些数据应该如何进行呈现。在 Spring Boot 应用程序中,你可以使用 Gson、Jackson 或者 any 其他的 JSON 库来处理返回给前端的数据。 前端页面部分,你需要引入 EchartsJavaScript 库,并且编写相应的代码来渲染图表。最简单的方式是在 HTML 页面中引入 Echarts 的 js 文件,并在页面中添加一个用于渲染图表的空 div 元素。然后,在你的 JavaScript 代码中使用 AJAX 方法来请求后端接口,并将接口返回的 JSON 数据渲染成 Echarts 图表。 以上是基本实现 echarts 和 Spring Boot 的整合。当然,在实际开发中,可能会遇到更多的问题和需求。比如说,你可能需要在前端页面中添加一些控制面板,来修改图表中显示的数据或者样式。你还可能需要在后端应用程序中集成一些高级的数据处理技术,比如排序、去重、多次聚合等等。但是无论你遇到什么问题,都可以通过对 Spring Boot 和 Echarts 的深入学习和掌握来轻松解决。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

林寻星辰

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

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

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

打赏作者

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

抵扣说明:

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

余额充值