当前位置: 首页 > news >正文

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

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

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

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>

下面是效果图:

180359_lzPl_1418088.png


顺便贴下后台对应的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();
	}


转载于:https://my.oschina.net/u/1418088/blog/536098

相关文章:

  • linux 使用ssh到远端并且使用while的坑
  • [置顶] 开源史上最成功的8个开源产品
  • 广州大学华软软件学院——NA视频下载
  • Android Studio使用来自控制台的模拟器,/dev/kvm device:
  • 安装win系统报错
  • CentOS6.10下安装mysql-5.7.24
  • php 数组元素 频率 次数
  • python docx文档转html页面
  • 算法60---石子游戏【动态规划】
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • Swift 设置navigation左右两侧按钮
  • JavaEE异常
  • jQuery根据元素值删除数组元素的方法
  • 简单的原生ajax
  • restful命名
  • @angular/forms 源码解析之双向绑定
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • css属性的继承、初识值、计算值、当前值、应用值
  • ES6核心特性
  • JavaScript实现分页效果
  • Lsb图片隐写
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • Octave 入门
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • 程序员该如何有效的找工作?
  • 关于List、List?、ListObject的区别
  • 记录一下第一次使用npm
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 前端设计模式
  • 前端之React实战:创建跨平台的项目架构
  • 系统认识JavaScript正则表达式
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 学习JavaScript数据结构与算法 — 树
  • 异常机制详解
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 自动记录MySQL慢查询快照脚本
  • 关于Android全面屏虚拟导航栏的适配总结
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • 选择阿里云数据库HBase版十大理由
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​secrets --- 生成管理密码的安全随机数​
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (分布式缓存)Redis持久化
  • (十六)串口UART
  • (原創) 物件導向與老子思想 (OO)
  • (转)Mysql的优化设置
  • (转载)PyTorch代码规范最佳实践和样式指南
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .aanva
  • .bashrc在哪里,alias妙用
  • .gitignore文件_Git:.gitignore
  • .NET CORE Aws S3 使用
  • .netcore 如何获取系统中所有session_如何把百度推广中获取的线索(基木鱼,电话,百度商桥等)同步到企业微信或者企业CRM等企业营销系统中...