EChats+Ajax之柱状图的数据交互
原文链接:https://blog.csdn.net/qq_37936542/article/details/79723710
一:下载 echarts.min.js
选择完整版进行下载,精简版和常用版限制的某些功能
二: echats入门案例
1、引入 ECharts 和 JQuery
- <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
- <script src="./js/echarts.min.js"></script>
2、准备一个具备高宽的 DOM 容器。
- <body>
- <div id="main1" style="width: 900px; height: 350px;"></div>
- <div id="main2" style="width: 900px; height: 350px;"></div>
- </body>
3、然后通过 echarts.init 方法初始化一个 echarts 实例并通过 setOption 方法生成一个简单的柱状图,下面是完整代码
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Insert title here</title>
- </head>
- <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
- <script src="./js/echarts.min.js"></script>
- <body>
- <div id="main1" style="width: 900px; height: 350px;"></div>
- <div id="main2" style="width: 900px; height: 350px;"></div>
- </body>
- <script type="text/javascript">
- var zChart = echarts.init(document.getElementById("main1"));// 柱形图模板一
- var option = {
- color : [ '#3398DB' ],
- title : {
- text : 'ECharts 示例', //主标题文本,支持使用 \n 换行。
- link : '', //主标题文本超链接
- textStyle : { //该属性用来定义主题文字的颜色、形状等
- color : '#3398DB',
- }
- },
- tooltip : {
- trigger : 'axis',
- axisPointer : { // 坐标轴指示器,坐标轴触发有效
- type : 'shadow' // 默认为直线,可选为:'line' | 'shadow'
- }
- },
- grid : {
- left : '6%',
- right : '20%',
- bottom : '20%',
- containLabel : true
- },
- xAxis : [ { //x轴列表展示
- type : 'category',
- data : [ '哈士奇', '斗牛犬', '田园犬', '吉娃娃' ],
- } ],
- yAxis : [ { //定义y轴刻度
- type : 'value',
- scale : true,
- name : '月销量',
- max : 140,
- min : 0,
- splitNumber : 20,
- boundaryGap : [ 0.2, 0.2 ]
- } ],
- series : [ {
- name : '销量',
- type : 'bar', //bar 柱状图 line 折线图 等
- barWidth : '40%', //柱的宽度
- data : [ '120', '30', '80', '65' ]
- } ]
- };
- zChart.setOption(option);
- var xChart = echarts.init(document.getElementById('main2'));// 柱形图模板二
- var option1 = {
- title : {
- text : $("#signSet option:selected").val() == '' ? $(
- "#signSet option:eq(1)").html() : $(
- "#signSet option:selected").html(),
- },
- color : [ '#2474f6', '#006699', '#d84a38' ],
- tooltip : {
- trigger : 'axis',
- axisPointer : { // 坐标轴指示器,坐标轴触发有效
- type : 'shadow' // 默认为直线,可选为:'line' | 'shadow'
- }
- },
- legend : {
- data : [ '正常', '迟到', '未到' ]
- },
- grid : {
- left : '3%',
- right : '4%',
- bottom : '3%',
- containLabel : true
- },
- xAxis : [ {
- type : 'category',
- data : [ '一班', '二班', '三班', '四班' ]
- } ],
- yAxis : [ {
- type : 'value',
- scale : true,
- name : '月销量',
- max : 60,
- min : 0,
- splitNumber : 20,
- boundaryGap : [ 0.2, 0.2 ]
- } ],
- series : [ {
- name : '正常',
- type : 'bar',
- data : [ '54', '49', '58', '56' ]
- },
- {
- name : '迟到',
- type : 'bar',
- data : [ '5', '8', '4', '2' ]
- }, {
- name : '未到',
- type : 'bar',
- data : [ '3', '2', '1', '2' ],
- markLine : {
- lineStyle : {
- normal : {
- type : 'dashed'
- }
- },
- data : [ [ {
- type : 'min'
- }, {
- type : 'max'
- } ] ]
- }
- }, ]
- }
- xChart.setOption(option1);
- </script>
- </html>
4、效果图
三:EChats + Ajax 完成数据交互
1、封装EChats返回的结果集
- package com.debo.echats;
- import java.util.List;
- /**
- * 封装echats需要的结果集
- * @ClassName: EchatsRes
- * @Description: TODO
- * @author A18ccms a18ccms_gmail_com
- * @date 2018年3月28日 上午9:38:54
- *
- */
- public class EchatsRes {
- private List<String> xData;
- private List<Integer> yData;
- public List<String> getxData() {
- return xData;
- }
- public void setxData(List<String> xData) {
- this.xData = xData;
- }
- public List<Integer> getyData() {
- return yData;
- }
- public void setyData(List<Integer> yData) {
- this.yData = yData;
- }
- @Override
- public String toString() {
- return "EchatsRes [xData=" + xData + ", yData=" + yData + "]";
- }
- }
2、Controller层,模拟数据
- package com.debo.echats;
- import java.util.ArrayList;
- import java.util.List;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.ResponseBody;
- @Controller
- @RequestMapping("/echats")
- public class Echats {
- @ResponseBody //返回json格式数据
- @RequestMapping(method = RequestMethod.GET)
- public EchatsRes echats() {
- //为了简单,这里省略从数据库查询数据,选择直接模拟
- List<String> xList = new ArrayList<String>();
- List<Integer> yList = new ArrayList<Integer>();
- xList.add("哈士奇");
- xList.add("斗牛犬");
- xList.add("田园犬");
- xList.add("吉娃娃");
- yList.add(120);
- yList.add(30);
- yList.add(80);
- yList.add(55);
- EchatsRes echatsRes = new EchatsRes();
- echatsRes.setxData(xList);
- echatsRes.setyData(yList);
- return echatsRes;
- }
- }
注意:@responseBody注解需要jackson依赖
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-core</artifactId>
- <version>2.4.3</version>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- <version>2.4.3</version>
- </dependency>
3、jsp完整代码
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>EChats和Ajax数据交互</title>
- <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
- <script src="./js/echarts.min.js"></script>
- </head>
- <body>
- <div><input type="button" id="show" value="点击显示图表"></div>
- <!-- 柱状图 -->
- <div id="main" style="width: 900px; height: 350px;"></div>
- </body>
- <script type="text/javascript">
- var zChart = echarts.init(document.getElementById("main"));// 柱形图模板
- $("#show").on("click", function() {
- $.ajax({
- url : "/demo/echats.do",
- type : 'GET',
- success : function(data) {
- fun(data.xData, data.yData);
- },
- error : function(data){
- alert(1);
- }
- });
- })
- function fun(x_data, y_data) {
- var option = {
- color : [ '#3398DB' ],
- title : {
- text : 'ECharts 示例', //主标题文本,支持使用 \n 换行。
- link : '', //主标题文本超链接
- textStyle : { //该属性用来定义主题文字的颜色、形状等
- color : '#3398DB',
- }
- },
- tooltip : {
- trigger : 'axis',
- axisPointer : { // 坐标轴指示器,坐标轴触发有效
- type : 'shadow' // 默认为直线,可选为:'line' | 'shadow'
- }
- },
- grid : {
- left : '6%',
- right : '20%',
- bottom : '20%',
- containLabel : true
- },
- xAxis : [ { //x轴列表展示
- type : 'category',
- data : x_data,
- } ],
- yAxis : [ { //定义y轴刻度
- type : 'value',
- scale : true,
- name : '月销量',
- max : 140,
- min : 0,
- splitNumber : 20,
- boundaryGap : [ 0.2, 0.2 ]
- } ],
- series : [ {
- name : '销量',
- type : 'bar', //bar 柱状图 line 折线图 等
- barWidth : '40%', //柱的宽度
- data : y_data
- } ]
- };
- zChart.setOption(option);
- }
- </script>
- </html>
4、效果图
文末福利:
福利一:前端,Java,产品经理,微信小程序,Python等10G资源合集大放送:https://www.jianshu.com/p/e8197d4d9880
福利二:微信小程序入门与实战全套详细视频教程。
【领取方法】
关注 【编程微刊】微信公众号:
回复【小程序demo】一键领取130个微信小程序源码demo资源。
回复【领取资源】一键领取前端,Java,产品经理,微信小程序,Python等资源合集10G资源大放送。
原文作者:祈澈姑娘
原文链接:https://www.jianshu.com/u/05f416aefbe1
创作不易,转载请告知
90后前端妹子,爱编程,爱运营,爱折腾。
坚持总结工作中遇到的技术问题,坚持记录工作中所所思所见,欢迎大家一起探讨交流。
EChats+Ajax之柱状图的数据交互的更多相关文章
- ASP.Net WebAPI与Ajax进行跨域数据交互时Cookies数据的传递
前言 最近公司项目进行架构调整,由原来的三层架构改进升级到微服务架构(准确的说是服务化,还没完全做到微的程度,颗粒度没那么细),遵循RESTFull规范,使前后端完全分离,实现大前端思想.由于是初次尝 ...
- ASP.Net中关于WebAPI与Ajax进行跨域数据交互时Cookies数据的传递
本文主要介绍了ASP.Net WebAPI与Ajax进行跨域数据交互时Cookies数据传递的相关知识.具有很好的参考价值.下面跟着小编一起来看下吧 前言 最近公司项目进行架构调整,由原来的三层架构改 ...
- jquery ajax 后台和前台数据交互 C#
<input type="button" id="updateInfo" value="更改货载重量" /> <div i ...
- AJAX请求.net controller数据交互过程
AJAX发出请求 $.ajax({ url: "/Common/CancelTaskDeal", //CommonController下的CancelTaskDeal方法 type ...
- 前端和后端的数据交互(jquery ajax+python flask+mysql)
上web课的时候老师布置的一个实验,要求省市连动,基本要求如下: 1.用select选中一个省份. 2.省份数据传送到服务器,服务器从数据库中搜索对应城市信息. 3.将城市信息返回客户,客户用sele ...
- JavaScript模板引擎实现数据交互
经过1年的磨练,近期终于稍微明白到,前端是怎么做到企业要求的:数据交互. 1,ajax+json这个是必须学的,但没问题,我们可以通过这个博客来慢慢了解怎么回事? 2,可以通过JS框架和JS模板来实现 ...
- Ajax实现xml文件数据插入数据库(一)--- 构建解析xml文件的js库
Ajax实现将xml文件数据插入数据库的过程所涉及到的内容比较多,所以对于该过程的讲解本人打算根据交互的过程将其分为三个部分,第一部分为构建解析xml文件的javascript库,第二部分为ajax与 ...
- 使用Jquery.AJAX方法和PHP后台数据交互小结
使用jQuery的AJAX方法和后台PHP进行数据交互,交互采用的数据格式JSON格式. 我主要小小的总结了一下,我使用AJAX方法时候遇到一些小小的问题. 第一:在传递数据的时候,传输地址注意是否正 ...
- 无废话ExtJs 入门教程二十[数据交互:AJAX]
无废话ExtJs 入门教程二十[数据交互:AJAX] extjs技术交流,欢迎加群(521711109) 1.代码如下: 1 <!DOCTYPE html PUBLIC "-//W3C ...
随机推荐
- vue-cli 和webpack
https://note.youdao.com/share/?id=d1851db9f0fe0a691798fac823849564&type=notebook#/C045BC3E7DC144 ...
- Mahout应用
不多说,直接上干货! Mahout作为Apache基金会的顶级项目之一,Mahout的应用也极其广泛,一般分为商业应用和学术应用. 在商业应用中,Adobe AMP公司使用Mahout的聚类算法把用户 ...
- Trie&可持久化Trie
WARNING:以下代码未经测试,若发现错误,欢迎指出qwq~ Trie树(字典树) 一种简单的数据结构,可存储大量字符串,可在$O(len)$的时间内完成插入,删除,查找等操作. 下面是一个简单的例 ...
- Navigator对象关于语言的属性
[摘要]在做国际化WEB项目的时候,遇到了一个根据用户浏览器所使用的自然语言切换默认语言版本的问题.于是,整理了这篇文章. 首先,W3Cschool关于Navigator的各个属性值说的很明确了,这里 ...
- 用vue.js的v-for,v-if,computed写一个分页样式
在学Vue,总想写个分页,先写了一个样式. 主要看思路: 思路简单,得到总页数,判断总页数,循环. 先判断总页数是否需要分页,总页数==1页就不分了. 再判断总页数<11就不用--. 总页数&g ...
- 初识ThreadLocal
近期公司在进行Java开发者的招聘活动,当中有一道面试题是这种:"请简单描写叙述一下ThreadLocal类的作用." 结果发现有非常多的面试者没有听说过ThreadLocal或者 ...
- 循环体(for/while)循环变量的设置
1. 求滑动(移动)平均(moving average) double partialSum = 0; for (int i = 0; i < M-1; ++i) partialSum += A ...
- Scala具体解释---------数组、元组、映射
一.数组 1.定长数组 声明数组的两种形式: 声明指定长度的数组 val 数组名= new Array[类型](数组长度) 提供数组初始值的数组,无需newkeyword Scala声明数组时.须要带 ...
- PHP从数组中删除元素的四种方法实例
PHP从数组中删除元素的四种方法实例 一.总结 一句话总结:unset(),array_splice(),array_diff(),array_diff_key() 二.PHP从数组中删除元素的四种方 ...
- jmeter--使用badboy录制脚本
JMeter录制脚本有多种方法,其中最常见的方法是用第三方工具badboy录制,另外还有JMeter自身设置(Http代理服务器+IE浏览器设置)来录制脚本,但这种方法录制出来的脚本比较多且比较乱,个 ...