文档章节

ECharts初使用,从后台得到数据源

another_yu
 another_yu
发布于 2015/11/26 18:06
字数 520
阅读 536
收藏 11

首先,这是国产的,百度出品,大家支持下国产软件!!!

github:https://github.com/ecomfe/echarts

官网:http://echarts.baidu.com/


我今天用echarts插件显示商品的预定情况,数据是用ajax从后台拿的,贴下代码记录下:

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>预定情况图表</title>
<script type="text/javascript" src="js/jquery.min.js"></script>  //因为用到了ajax
<script src="echarts-2.2.7/build/dist/echarts.js"></script>
<script type="text/javascript">
        // 路径配置
        require.config({
            paths: {
                echarts: 'echarts-2.2.7/build/dist'
            }
        });
        require(
            [
                'echarts',
                'echarts/chart/bar' // 使用柱状图就加载bar模块,按需加载
            ],
            function (ec) {
            	var goodsName=new Array();
            	var goodsReserveNum=new Array();
            	var goodsPrice=new Array();
            	 $.ajax({
			method:'GET',
			async:true,
			url:'ordersAction!Report',   //这里我是action
			dataType :'json',
			success:function(data){
					for(var i=0;i<data.rows.length;i++){
					    goodsName[i]=data.rows[i].g_name;  //将数据从json中分离出来
					    goodsReserveNum[i]=data.rows[i].total;
					    goodsPrice[i]=data.rows[i].g_price;
					}
				}
                });
                // 基于准备好的dom,初始化echarts图表
                var myChart = ec.init(document.getElementById('charts')); 
                alert("数据加载中……");
                var date=new Date();
                var time=date.toLocaleDateString();  //拿到当前日期
                var option = {
                	    title : {
                	        text: '商品预定情况统计:'+time,
                	        subtext: '预定量'
                	    },
                	    tooltip : {
                	        trigger: 'axis'
                	    },
                	    legend: {
                	        data:["预定数量",'价格']
                	    },
                	    toolbox: {
                	        show : true,
                	        feature : {
                	            mark : {show: true},
                	            dataView : {show: true, readOnly: false},
                	            magicType : {show: true, type: ['line', 'bar']},
                	            restore : {show: true},
                	            saveAsImage : {show: true}
                	        }
                	    },
                	    calculable : true,
                	    xAxis : [
                	        {
                	            type : 'category',
                	            data : goodsName
                	        }
                	    ],
                	    yAxis : [
                	        {
                	            type : 'value'
                	        }
                	    ],
                	    series : [
                	         {
                	            name:'预定数量',
                	            type:'bar',
                	            data:goodsReserveNum,
                	            markPoint : {
                	                data : [
                	                    {type : 'max', name: '最大值'},
                	                    {type : 'min', name: '最小值'}
                	                ]
                	            },
                	           /*  itemStyle: {  //设置是否在柱上显示具体数值
                	                normal: {
                	           			 label: {
                	           				 	show:true,
                	          			  		position:'top'
                    	      			  		},
                	              		  }
                	            	} */
                	        } ,
                	        {
                	            name:'价格',
                	            type:'bar',
                	            data:goodsPrice,
                	            markPoint : {
                	                data : [
                	                    {type : 'max', name: '最大值'},
                	                    {type : 'min', name: '最小值'}
                	                ]
                	            },
                	        } 
                	    ],
                	};
                
        		/* for(var i=0;i<goodsName.length;i++){
        			option.series.push({     //动态添加数据
        				
        				type:'bar',
        				data:goodsNum
        			})
        		} */
                // 为echarts对象加载数据 
                myChart.setOption(option); 
            }
        );
    </script>
</head>
<body>
	<div id="charts" style="height:400px;margin-top:100px"></div>
</body>
</html>

下面是效果图:


顺便贴下后台对应的action:

public void Report() throws IOException{
		 List<ReserveReport> report=null;
		Map<String, String> map = null;
		try {
			report=ordersService.getReport();
		} catch (Exception e) {
			e.printStackTrace();
		}
		JSONObject json=new JSONObject();
		json.accumulate("rows", report);
		System.out.println(json.toString());
		response.setContentType("application/json;charset=UTF-8");
		PrintWriter out = response.getWriter();
		out.print(json);
		out.flush();
		out.close();
	}


© 著作权归作者所有

共有 人打赏支持
another_yu
粉丝 4
博文 17
码字总数 4285
作品 0
杭州
程序员
Echarts视频教程从入门到实战

Echarts视频教程从入门到实战 网盘地址:https://pan.baidu.com/s/1p-G9UbKmXFtnuJEdiLSw2w 密码:0e9u 备用地址(腾讯微云):https://share.weiyun.com/5sKBF8E 密码:4ms8rp 有这样一款制...

放风筝好不
04/16
0
0
Echarts使用心得总结(二)

Echarts使用心得总结(二) 前言: 前一段时间一直都挺忙的,各种事,也没来得及每周的总结,趁着晚上的一点时间把项目中用的Echart中常用的各种图表给抽象总结了一下,趁着周末跟大家分享一...

双月通天
2014/07/14
0
0
响应式 React Native Echarts 组件

一种在 React Native 中封装的响应式 Echarts 组件,使用与示例请参见:react-native-echarts-demo 近年来,随着移动端对数据可视化的要求越来越高,类似 MPAndroidChart 这样的传统图表库已...

entronad
07/12
0
0
三大图表库:ECharts 、 BizCharts 和 G2,该如何选择?

最近阿里正式开源的BizCharts图表库基于React技术栈,各个图表项皆采用了组件的形式,贴近React的使用特点。同时BizCharts基于G2进行封装,Bizcharts也继承了G2相关特性。公司目前统一使用的...

薄荷前端
09/20
0
0
echarts搞定各种地图(想怎么画就怎么画)

echarts提供了全国各省市及区县的js和json文件,但是并没有细化到区域内各街道范围,有时候项目中又有这种需求,领导给予重任,我们又不能轻易拒绝,只能是硬着头皮上了。 今天我们以北京市西...

Mr_ZhangQian
09/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

python进制转换

#进制转换print(bin(10)) #十进制转换成二进制print(oct(10)) #十进制转换成八进制print(hex(10)) #十进制转换成十六进制print(int('1010',2)) #二进制转十进制print(int(...

fadsaa
7分钟前
0
0
syntax error near unexpected token

最近不断重复在虚拟机CentOS测试安装gitlab,因为gitlab有一个脚本需要饭强才能下载,于是我先在windows下载好再上传到虚拟机,可是执行脚本的时候提示“syntax error near unexpected toke...

W_Lu
16分钟前
0
0
Redis基础、高级特性与性能调优

本文将从Redis的基本特性入手,通过讲述Redis的数据结构和主要命令对Redis的基本能力进行直观介绍。之后概览Redis提供的高级能力,并在部署、维护、性能调优等多个方面进行更深入的介绍和指导...

Java干货分享
17分钟前
1
0
Redis使用lua脚本实现increase + expire 的原子操作

lua脚本: public Integer incrEX(String key, long defaultExpire){ String script = "local current = redis.call('incr',KEYS[1]);" + " local t = redis.call......

大海201506
18分钟前
0
0
Dubbo 源码分析(一)一环境搭建

环境搭建的步骤有哪些 依赖外部的环境 使用的开发工具 源码的拉取 结构大致介绍 1 依赖的外部环境 安装JDK 安装Git 安装maven 这边我们就不介绍怎么安装这些外部环境了,大家自行从安装这些外...

小刀爱编程
19分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部