一、什么是Echarts?

ECharts 是一款由百度前端技术部开发的,基于 Javascript 的数据可视化图表库,提供直 观,生动,可交互,可个性化定制的数据可视化图表。

二、Echarts的下载

Echarts官网下载地址:https://echarts.apache.org/zh/index.html

三、Echarts的开发步骤

3.1 Echarts的引入

将Echarts引入到项目中,其实官方就给了解释。可以点击5分钟上手Echarts进入。这里通过标签引入打包下载好的Echarts。

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><!-- 引入 ECharts 文件 --><script src="echarts.min.js"></script>
</head>
</html>

3.2 Echarts入门案例步骤

  • 引入Echarts文件
  • 为 ECharts 准备一个具备高宽的DOM容器
  • 初始化一个echarts实例
  • 指定你所需要图的配置项和数据
  • 通过 setOption 方法生成一个简单的柱状图
<%--Created by IntelliJ IDEA.User: ZiphDate: 2020/5/19Time: 13:22To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>echarts入门</title><%--1.引入echarts.js--%><script src="echarts/echarts.min.js"></script><script src="js/jquery-3.2.1.min.js"></script>
​<script type="text/javascript">$(function () {/*3.初始化echarts容器*/var eCharts = echarts.init(document.getElementById("main"));/*4.设定echarts属性*/eCharts.setOption({title: {text: 'ECharts 入门示例'},tooltip: {},legend: {data: ['销量']},xAxis: {data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]},yAxis: {},series: [{name: '销量',type: 'bar',data: [5, 20, 36, 10, 10, 20]}]});});</script>
</head>
<body>
<%--2.设定一个具有宽高的echarts容器--%>
<div id="main" style="width: 1000px;height: 400px">
​
</div>
</body>
</html>

四、Echarts官方文档的使用

关于Echarts的使用,我们必须学会查看Echarts的官方文档,这里我给大家介绍一下官方文档的常用操作。

4.1 5分钟上手教程

5分钟上手教程就是新手教程了!

4.2 API

可以根据API查询在使用Echarts时的语法!可以根据语法来操作Echarts图表!

4.3 官方实例

可以根据官方实例,找到并修改自己想要的图表,最后粘贴复制到自己的项目中使用即可!

五、Echarts与服务器的交互

5.1 为什么Echarts图表要与服务器交互?

我们在使用Echarts的时候,在页面中是写死的图标信息。但是当我们真正的用于开发时,图表的信息就必须保证动态的显示周期内统计的数据信息。这时候我们就必须使用数据库来存储信息,使得数据动态的显示。

5.2 Echarts与服务器交互的实现

项目结构

所需jar包

LineChart.jsp页面

<%--Created by IntelliJ IDEA.User: ZiphDate: 2020/5/19Time: 13:34To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>echarts折线图</title><script src="echarts/echarts.min.js"></script><script src="js/jquery-3.2.1.min.js"></script>
​<script type="text/javascript">$(function () {var eCharts = echarts.init(document.getElementById("main"));$.get("${pageContext.request.contextPath}/LineChart", {}, function (data) {var option = {title: {text: '卖家周记录'},xAxis: {name: 'weeks',type: 'category',data: data.weekList},yAxis: {name: '销量/件',type: 'value'},series: [{data: data.saleList,type: 'line',}]};eCharts.setOption(option);}, "json");});</script>
</head>
<body>
<div id="main" style="width: 1000px;height: 400px"></div>
</body>
</html>

Sale实体类

package com.mylifes1110.java.bean;
​
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
​
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Sale {//使用的Lombok插件,大家也可以自行生成所需的get/set方法、toString方法等private Integer id;private Integer sales;private String  week;
}

c3p0.properties配置文件

c3p0.driverClass=com.mysql.jdbc.Driver
c3p0.jdbcUrl=jdbc:mysql://localhost:3306/temp
c3p0.user=root
c3p0.password=123456

DBUtils连接池工具类

package com.mylifes1110.java.utils;
​
import com.mchange.v2.c3p0.ComboPooledDataSource;
​
/*** c3p0工具类*/
public class DBUtils {private static ComboPooledDataSource dataSource;
​static {dataSource = new ComboPooledDataSource();}
​public static ComboPooledDataSource getDataSource() {return dataSource;}
}

Jackson解析工具类

package com.mylifes1110.java.utils;
​
import java.io.IOException;
​
import javax.servlet.http.HttpServletResponse;
​
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
​
/*** Jackson工具类*/
public class JSONUtils {​/*** 将Java对象转换为JSON字符串** @param o Java对象* @return JSON字符串* @throws JsonProcessingException*/public static String toJsonStr(Object o) throws JsonProcessingException {return new ObjectMapper().writeValueAsString(o);}
​/*** 将JSON字符串相应到浏览器** @param response 响应对象* @param o        Java对象* @throws IOException*/public static void writeJsonStr(HttpServletResponse response, Object o) throws IOException {response.setContentType("application/json;charset=utf-8");response.getWriter().write(toJsonStr(o));}
}

LineChartServlet

package com.mylifes1110.java.controller;
​
import java.io.IOException;
​
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
​
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
​
import com.mylifes1110.java.bean.Sale;
import com.mylifes1110.java.service.SaleService;
import com.mylifes1110.java.service.impl.SaleServiceImpl;
import com.mylifes1110.java.utils.JSONUtils;
​
import lombok.SneakyThrows;
​
@WebServlet(name  = "LineChartServlet",value = "/LineChart"
)
public class LineChartServlet extends HttpServlet {@SneakyThrows@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {SaleService   saleService = new SaleServiceImpl();List<Sale>    sales       = saleService.selectSalesList();List<Integer> saleList    = new ArrayList<>();List<String>  weekList    = new ArrayList<>();
​for (Sale sale : sales) {saleList.add(sale.getSales());weekList.add(sale.getWeek());}
​Map<String, Object> map = new HashMap<>();
​map.put("weekList", weekList);map.put("saleList", saleList);JSONUtils.writeJsonStr(response, map);}
​@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}
}

SaleDao

package com.mylifes1110.java.dao;
​
import com.mylifes1110.java.bean.Sale;
​
import java.sql.SQLException;
import java.util.List;
​
public interface SaleDao {List<Sale> selectSalesList() throws SQLException;
}

SaleDaoImpl

package com.mylifes1110.java.dao.impl;
​
import java.sql.SQLException;
​
import java.util.List;
​
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
​
import com.mylifes1110.java.bean.Sale;
import com.mylifes1110.java.dao.SaleDao;
import com.mylifes1110.java.utils.DBUtils;
​
public class SaleDaoImpl implements SaleDao {@Overridepublic List<Sale> selectSalesList() throws SQLException {return new QueryRunner(DBUtils.getDataSource()).query("select * from tb_sales ",new BeanListHandler<Sale>(Sale.class));}
}

SaleService

package com.mylifes1110.java.service;
​
import com.mylifes1110.java.bean.Sale;
​
import java.sql.SQLException;
import java.util.List;
​
public interface SaleService {List<Sale> selectSalesList() throws SQLException;
}

SaleServiceImpl

package com.mylifes1110.java.service.impl;
​
import com.mylifes1110.java.bean.Sale;
import com.mylifes1110.java.dao.SaleDao;
import com.mylifes1110.java.dao.impl.SaleDaoImpl;
import com.mylifes1110.java.service.SaleService;
​
import java.sql.SQLException;
import java.util.List;
​
public class SaleServiceImpl implements SaleService {private SaleDao saleDao = new SaleDaoImpl();@Overridepublic List<Sale> selectSalesList() throws SQLException {return saleDao.selectSalesList();}
}

页面显示效果

这样我们就可以修改数据库,及时、动态的设计到服务器中显示数据图表统计信息了!

页面引入多个echarts_JavaWeb之Echarts数据统计图表详细教程相关推荐

  1. python Flask框架如何请求及返回数据——flask详细教程

    python Flask框架如何请求及返回数据--flask详细教程 文章目录: 1 Flask介绍 1.1 Flask简单介绍 1.2 Flask相关资料信息 2 Flask快速入门 2.1 Fla ...

  2. 在matlab中导入excel,Matlab导入Excel文件中的数据的详细教程分享

    操作Matlab时还不会导入Excel文件中的数据?本文就介绍了Matlab导入Excel文件中的数据的操作内容,想要学习的朋友可以看一看下文哦,相信对大家会有所帮助的. 直接点击鼠标操作导入数据 打 ...

  3. 【中科微北斗+GPS模块经纬度数据解析详细教程-附免费代码工程】

    中科微北斗+GPS模块经纬度数据解析详细教程-附免费代码工程 简介 准备工作 PC端需要用到的工具 代码下载地址 GD32F103C8T6最小系统板 代码实现 GD32串口引脚定义如下: 串口的初始化 ...

  4. 【Echarts教科书】Echarts数据统计图表教学(详细)

    文章目录 一.什么是Echarts? 二.Echarts的下载 三.Echarts的开发步骤 3.1 Echarts的引入 3.2 Echarts入门案例步骤 四.Echarts官方文档的使用 4.1 ...

  5. 英雄联盟LPL比赛数据可视化详细教程,可视化的魅力,你值得拥有!!!

    LPL比赛数据可视化 完成这个项目,我感觉我已经被掏空了,我几乎用尽了我会的所有知识 html+css+javascript+jQuery+python+requests+numpy+mysql+py ...

  6. python学得好牢饭_英雄联盟LPL比赛数据可视化详细教程,可视化的魅力,你值得拥有!!!...

    LPL比赛数据可视化 完成这个项目,我感觉我已经被掏空了,我几乎用尽了我会的所有知识 html+css+javascript+jQuery+python+requests+numpy+mysql+py ...

  7. echarts入门(详细教程)

    一.echarts的介绍 1.echarts是一款基于JavaScript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表.ECharts最初由百度团队开源,并于2018年初捐 ...

  8. Echarts 折线图完全配置指南 - 手把手教你设置 Echarts 折线图详细教程

    本文首发:<Echarts 折线图完全配置指南> Echarts 折线图是图表中最常用的显示形式之一.使用 Echarts 做出基本的折线图很简单,但要是想把多组数据放在一张图表中,展示的 ...

  9. 基于学术研究于NASA官网GPM卫星数据下载详细教程

    目录 一.相关网址 1.用户注册网址:(点我) 2.数据下载主页:https://disc.gsfc.nasa.gov 3.其他相关网址 二.下载数据步骤 1.首先注册账户,只有登录账户后,才能下载搜 ...

最新文章

  1. Dev-C++ 5.11安装教程
  2. 春风吹用计算机的谱子,方大同《春风吹》简谱
  3. 第一章:Java语言概述
  4. 判断一个图中有无环路的存在
  5. 广西河池计算机考试考什么,2021上半年广西壮族自治区河池市计算机等级考试时间...
  6. OV9712+3518EV200
  7. 土壤HWSD处理流程
  8. ISO9001:2015新版质量管理体系标准时间表
  9. 微信小程序自定义字体
  10. SQL 审核查询平台
  11. xxx-1.0-SNAPSHOT.jar中没有主清单属性的解决方法
  12. 要么忍,要么狠,要么滚
  13. TensorFlow基础(1)特点安装基本用法
  14. python列表同时添加多个元素_python怎么向列表中添加多个元素
  15. 安卓实现老虎机抽奖的案例
  16. 蚂蚁金服 g6 用法
  17. 2021第五届蓝帽杯初赛部分题目wp
  18. 神经系统体格检查概要
  19. 论文,更不能培养自己研究问题的能力。
  20. zlib and gzip

热门文章

  1. 移动互联网这十年,跨平台技术的演进及 Flutter 的未来
  2. 细数微软 Teams 的 14 宗“罪”!
  3. 8 月社群专属福利活动开启!进群免费领取开发视频课程!
  4. Fortinet 推出集成化SD-WAN解决方案 构建下一代企业网
  5. Google 究竟是不是要用 Fuchsia OS 取代 Android?
  6. 趣店斗鱼深陷裁员风波,程序员寒冬何去何从?| 畅言
  7. Google 又又又要“重回中国”了?
  8. 中兴正式解禁;小米市值与索尼相当;CMU教授炮轰谷歌 | 极客头条
  9. Git曝最危险漏洞,允许攻击者远程执行代码!
  10. 7名高管、半数员工离职,如何再造乔布斯重返苹果神话?