Echarts(数据可视化)使用记录

Echarts(数据可视化)

    入门案例:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'layout.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
	<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.8.3.js"></script>
	<script type="text/javascript" src="${pageContext.request.contextPath }/js/echarts/echarts.js"></script>
  	<style type="text/css">
  		.divClass{
  			width: 800px;
  			height:600px;
  			border: 1px solid black;
  			float: left;
  			margin-right: 5px
  		}
  	
  	</style>	
  </head>
  
  <body>
<!-- ==================================================通过JavaScript加载数据======================================================= -->    	
  	
	<div id="charts" class="divClass"></div>
	<script type="text/javascript">
		$(function(){
  				var myChart = echarts.init(document.getElementById("charts"));
  	  			//生成图表数据
  	  			var option = {
  	  			    title : {
  	  		        text: '某站点用户访问来源',
  	  		        x:'center'
  	  		    },
  	  		    tooltip : {
  	  		        trigger: 'item',
  	  		        formatter: "{a} <br/>{b} : {c} ({d}%)"
  	  		    },
  	  		    legend: {
  	  		        orient: 'vertical',
  	  		        left: 'left',
  	  		        data: ['直接访问','邮件营销','联盟广告','视频广告','搜索引擎']
  	  		    },
  	  		    series : [
  	  		        {
  	  		            name: '访问来源',
  	  		            type: 'pie',
  	  		            radius : '55%',
  	  		            center: ['50%', '60%'],
  	  		            data:[
  	  		                {value:335, name:'直接访问'},
  	  		                {value:310, name:'邮件营销'},
  	  		                {value:234, name:'联盟广告'},
  	  		                {value:135, name:'视频广告'},
  	  		                {value:1548, name:'搜索引擎'}
  	  		            ],
  	  		            itemStyle: {
  	  		                emphasis: {
  	  		                    shadowBlur: 10,
  	  		                    shadowOffsetX: 0,
  	  		                    shadowColor: 'rgba(0, 0, 0, 0.5)'
  	  		                }
  	  		            }
  	  		        }
  	  		    ]
  	  		};
  	  		myChart.setOption(option);
  				
  			});
  			
	</script>
	

<!-- ========================================================================================================================= --> 


<!-- ==================================================通过json文件加载数据======================================================= -->    	
  	
	<div id="charts1" class="divClass"></div>
	<script type="text/javascript">
		$(function(){
			
			/********************************json数据格式*************************************
			
			{
			"data":[
			                {"value":335, "name":"直接访问"},
			                {"value":310, "name":"邮件营销"},
			                {"value":234, "name":"联盟广告"},
			                {"value":135, "name":"视频广告"},
			                {"value":1548, "name":"搜索引擎"}
			       ],
			"name":["直接访问","邮件营销","联盟广告","视频广告","搜索引擎"]
			}
			
			********************************************************************************/
  			$.get('${pageContext.request.contextPath }/json/echart_data.json',function(data){
  				var myChart = echarts.init(document.getElementById("charts1"));
  	  			//生成图表数据
	  	  		myChart.setOption({
						//标题属性
					    title : {
					        text: '某站点用户访问来源',
					        x:'center'
					    },
					    //提示框属性
					    tooltip : {
					        trigger: 'item',
					        formatter: "{a} <br/>{b} : {c} ({d}%)"
					    },
					   	//图例属性
					    legend: {
					        orient: 'vertical',
					        left: 'left',
					        data: data.name
					    },
					    //数据
					    series : [
					        {
					            name: '访问来源',
					            type: 'pie',
					            radius : '55%',
					            center: ['50%', '60%'],
					            data:data.data
					            
					        }
					    ],itemStyle: {
  	  		                emphasis: {
  	  		                    shadowBlur: 10,
  	  		                    shadowOffsetX: 0,
  	  		                    shadowColor: 'rgba(0, 0, 0, 0.5)'
  	  		                }
  	  		            }
					});
	  				
	  			});
  			
  			
  		});
	</script>
	

<!-- ========================================================================================================================= -->  
 
  </body>
</html>

页面效果:


json文件格式不是关键。只要需要的数据在json串中就有办法获取出来,生成图表。


SSH框架查询数据库中的数据生成图表:

Action中加载数据的方法:
	public String chart(){
		/*
		 * 1.调用service#industryCount()
		 * 2.将返回的结果集保存转发到页面
		 */
		List<Object[]> list = customerService.getIndustryCount();
		ActionContext.getContext().put("list", list);

		HttpServletResponse response = ServletActionContext.getResponse();
		response.setContentType("text/json;charset=UTF-8");
		//将PageBean转换为JSON串,返回给页面
		//将查询结果转换为json串
		String json = JSONArray.fromObject(list).toString();
		System.out.println(json);
		
		//返回json数据
		try {
			response.getWriter().print(json);
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		return null;
	}
生成的json字符串格式:


页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib  prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<TITLE>统计列表</TITLE> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<LINK href="${pageContext.request.contextPath }/css/Style.css" type=text/css rel=stylesheet>
<LINK href="${pageContext.request.contextPath }/css/Manage.css" type=text/css
	rel=stylesheet>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/echarts.js"></script>
	<script type="text/javascript">
		$(function(){
  			$.get('CustomerAction_chart',function(data){
  				var myChart = echarts.init(document.getElementById("chart"));
  	  			//生成图表数据
	  	  		myChart.setOption({
						//标题属性
					    title : {
					        text: '本系统客户来源',
					        x:'center'
					    },
					    //提示框属性
					    tooltip : {
					        trigger: 'item',
					        formatter: "{a} <br/>{b} : {c} ({d}%)"
					    },
					   	//图例属性
					    legend: {
					        orient: 'vertical',
					        left: 'left',
					        data: (function(){
					        	var res = [];
					        	for(var i=0;i<data.length;i++){
					        		res.push(data[i][0]);
					        	}
					        	return res;
					        })()
					    },
					    //数据
					    series : [
					        {
					            name: '客户来源',
					            type: 'pie',
					            radius : '55%',
					            center: ['50%', '60%'],
					            data:function(){
					            	var res = [];
					            	for(var i=0;i<data.length;i++){
					            		res.push({
					            			name:data[i][0],
					            			value:data[i][1]
					            		});
					            	}
					            	return res;
					            }()
					            
					        }
					    ],itemStyle: {
  	  		                emphasis: {
  	  		                    shadowBlur: 10,
  	  		                    shadowOffsetX: 0,
  	  		                    shadowColor: 'rgba(0, 0, 0, 0.5)'
  	  		                }
  	  		            }
					});
	  				
	  			});
  			
  			
  		});
	</script>


<META content="MSHTML 6.00.2900.3492" name=GENERATOR>
</HEAD>
<BODY>
	<div id="chart" style="width:600px;height: 400px;background: wihte"></div>
</BODY>
</HTML>
效果展示:


猜你喜欢

转载自blog.csdn.net/qq1031893936/article/details/80039852