博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
五分钟上手ECharts图形报表
阅读量:2056 次
发布时间:2019-04-28

本文共 3719 字,大约阅读时间需要 12 分钟。

1. 图形报表ECharts

1.1 ECharts简介

ECharts缩写来自Enterprise Charts,商业级数据图表,是百度的一个开源的使用JavaScript实现的数据可视化工具,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的矢量图形库 ZRender,提供直观、交互丰富、可高度个性化定制的数据可视化图表。

官网:

下载地址:

在这里插入图片描述

下载完成可以得到如下文件:

在这里插入图片描述

解压上面的zip文件:

在这里插入图片描述

我们只需要将dist目录下的echarts.js文件引入到页面上就可以使用了

在这里插入图片描述

1.2 五分钟上手ECharts

我们可以参考官方提供的5分钟上手ECharts文档感受一下ECharts的使用方式,地址如下:

第一步:创建html页面并引入echarts.js文件

第二步:在页面中准备一个具备宽高的DOM容器。

	

第三步:通过echarts.init方法初始化一个 echarts 实例并通过setOption方法生成一个简单的柱状图

效果如下:

在这里插入图片描述

1.3 查看ECharts官方实例

ECharts提供了很多官方实例,我们可以通过这些官方实例来查看展示效果和使用方法。

官方实例地址:

在这里插入图片描述

可以点击具体的一个图形会跳转到编辑页面,编辑页面左侧展示源码(js部分源码),右侧展示图表效果,如下:

在这里插入图片描述

要查看完整代码可以点击右下角的Download按钮将完整页面下载到本地

通过官方案例我们可以发现,使用ECharts展示图表效果,关键点在于确定此图表所需的数据格式,然后按照此数据格式提供数据就可以了,我们无须关注效果是如何渲染出来的。

在实际应用中,我们要展示的数据往往存储在数据库中,所以我们可以发送ajax请求获取数据库中的数据并转为图表所需的数据即可

2. 会员数量折线图

2.1 需求分析

会员信息是体检机构的核心数据,其会员数量和增长数量可以反映出机构的部分运营情况。通过折线图可以直观的反映出会员数量的增长趋势。本章节我们需要展示过去一年时间内每个月的会员总数据量。展示效果如下图:

在这里插入图片描述

2.2 完善页面

会员数量折线图对应的页面为/pages/report_member.html(自定义)。

2.2.1 导入ECharts库

第一步:将echarts.js文件复制到health_backend工程的plugins目录下(根据自己目录即可)

第二步:在report_member.html页面引入echarts.js文件

2.2.2 参照官方实例导入折线图

根据折线图对数据格式的要求,我们发送ajax请求,服务端需要返回如下格式的数据:

{
"data":{
"months":["2019.01","2019.02","2019.03","2019.04"],"memberCount":[3,4,8,10]},"flag":true,"message":"获取会员统计数据成功"}

2.3 后台代码

2.3.1 Controller

在health_backend工程中创建ReportController并提供getMemberReport方法(创建Controller层)

package com.heihiehei.controller;import com.alibaba.dubbo.config.annotation.Reference;import com.itheima.constant.MessageConstant;import com.itheima.entity.Result;import com.itheima.service.MemberService;import com.itheima.utils.DateUtils;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import java.text.SimpleDateFormat;import java.util.*;/** * 图表操作 * * @author 嘿嘿嘿1212 * @version 1.0 * @date 2019/10/25 21:55 */@RestController@RequestMapping("/report")public class ReportController {
@Reference private MemberService memberService; @RequestMapping("/getMemberReport") public Result getMemberReport() {
//显示多少个月份之前 int month = 12; Map
map = new HashMap<>(); List
months = new ArrayList<>(); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.MONTH, -month); for (int i = 0; i < month; i++) {
calendar.add(Calendar.MONTH, 1); Date time = calendar.getTime(); months.add(new SimpleDateFormat("yyyy.MM").format(time)); } map.put("months", months); List
memberCount = memberService.findMemberByMonths(months); map.put("memberCount", memberCount); return new Result(true, MessageConstant.GET_MEMBER_NUMBER_REPORT_SUCCESS, map); }}

2.3.2 服务接口

MemberService服务接口中扩展方法findMemberCountByMonth(Servlce层)

public List
findMemberCountByMonth(List
month);

2.2.3 服务实现类

MemberServiceImpl服务实现类中实现findMemberCountByMonth方法

//根据月份统计会员数量

@Autowiredprivate MemberDao memberDao;/** * 根据月份统计用户数量 * @param months * @return */@Overridepublic List
findMemberByMonths(List
months) {
List
memberCount = new ArrayList<>(); for (String month : months) {
month = month + ".31";//格式:2019.10.31 memberCount.add(memberDao.findMemberCountBeforeDate(month)); } return memberCount;}

2.3.4 Dao接口

MemberDao接口中扩展方法findMemberCountBeforeDate

public Integer findMemberCountBeforeDate(String date);

2.3.5 Mapper映射文件

MemberDao.xml映射文件中提供SQL语句

注意

  • 最后进行测试页面出现数据报表则成功
  • 这里使用的SSM框架开发
  • 使用dubbo架构,如果使用单体架构请将Controller层的@Reference修改为@Autowired

转载地址:http://bnilf.baihongyu.com/

你可能感兴趣的文章
Linux下perf性能测试火焰图只显示函数地址不显示函数名的问题
查看>>
c结构体、c++结构体和c++类的区别以及错误纠正
查看>>
Linux下查看根目录各文件内存占用情况
查看>>
A星算法详解(个人认为最详细,最通俗易懂的一个版本)
查看>>
利用栈实现DFS
查看>>
逆序对的数量(递归+归并思想)
查看>>
数的范围(二分查找上下界)
查看>>
算法导论阅读顺序
查看>>
Windows程序设计:直线绘制
查看>>
linux之CentOS下文件解压方式
查看>>
Django字段的创建并连接MYSQL
查看>>
div标签布局的使用
查看>>
HTML中表格的使用
查看>>
(模板 重要)Tarjan算法解决LCA问题(PAT 1151 LCA in a Binary Tree)
查看>>
(PAT 1154) Vertex Coloring (图的广度优先遍历)
查看>>
(PAT 1115) Counting Nodes in a BST (二叉查找树-统计指定层元素个数)
查看>>
(PAT 1143) Lowest Common Ancestor (二叉查找树的LCA)
查看>>
(PAT 1061) Dating (字符串处理)
查看>>
(PAT 1118) Birds in Forest (并查集)
查看>>
数据结构 拓扑排序
查看>>