Highcharts图形报表工具插件的使用方法

Highcharts简介:

Highcharts 是一个用纯JavaScript编写的一个图表库, 能够很简单便捷的在web网站或是web应用程序添加有交互性的图表,并且免费提供给个人学习、个人网站和非商业用途使

用。HighCharts支持的图表类型有曲线图、区域图、柱状图、饼状图、散状点图和综合图表。

基于jQuery开发一个图形报表工具插件

官网:http://www.hcharts.cn/

入门案例:

第一步:将Highcharts相关资源文件复制到项目中

第二步:在页面中引入相关js文件

<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.8.3.js"></script>
<script src="${pageContext.request.contextPath }/js/highcharts/highcharts.js"></script>
<script src="${pageContext.request.contextPath }/js/highcharts/modules/exporting.js"></script>

第三步:在页面中提供一个div,并指定id属性

第四步:调用Highcharts提供的方法,动态创建图表

饼状图:

<script type="text/javascript">
	$(function(){
		//页面加载完成后,动态创建图表
		$("#test").highcharts({
			title: {
	            text: '各浏览器份额'
	        },
	        series: [{
	            type: 'pie',
	            name: '浏览器占比',
	            data: [
	                ['Firefox',   45.0],
	                ['IE',       26.8],
	                ['Safari',    8.5],
	                ['Opera',     6.2],
	                ['Others',   0.7]
	            ]
	        }]
		});
	});
</script>
柱状图:

<%@ 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>highcharts</title>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.8.3.js"></script>
<script src="${pageContext.request.contextPath }/js/highcharts/highcharts.js"></script>
<script src="${pageContext.request.contextPath }/js/highcharts/modules/exporting.js"></script>
<script type="text/javascript">
	$(function(){
		$('#test').highcharts({
	        title: {
	            text: '水果销量'
	        },
	        subtitle:{text:'官方统计'},
	        xAxis: {
	            categories: ['苹果', ' 橙', '梨', '香蕉', '李']
	        },
	        series: [{
	            type: 'column',
	            name: '小明',
	            data: [3, 2, 1, 3, 4]
	        }, {
	            type: 'column',
	            name: '小红',
	            data: [2, 3, 5, 7, 6]
	        }, {
	            type: 'column',
	            name: '小白',
	            data: [4, 3, 3, 9, 0]
	        }]
	    });
	});
</script>
</head>
<body>
	<div id="test"></div>
</body>
</html>

上面介绍的都是最基础的属性。

项目中使用:发送ajax请求查询数据库,动态展示到页面:

基于饼状图:业务流程,点击按钮,显示隐藏域,发送ajax请求data数据,展示到页面

我们先看一下需要展示数据的格式

第一步:在subarea.jsp页面中引入Highcharts资源文件

第二步:在jsp页面中提供按钮,并提供div窗口,在这个窗口中展示图表

	<!-- 用于展示图表 -->
	<div class="easyui-window" title="区域分区分布图" id="showSubareaWindow" 
		collapsible="false" minimizable="false" maximizable="false" style="top:20px;left:200px">
		<div id="test"  split="false" border="false" >
		</div>
	</div>

定义窗口属性:

		$('#showSubareaWindow').window({
	        width: 800,
	        modal: true,
	        shadow: true,
	        closed: true,
	        height: 700,
	        resizable:false
	    });

第三步:定义function点击事件

function doShowHighcharts(){
		$("#showSubareaWindow").window("open");
		//页面加载完成后,动态创建图表
		$.post("subareaAction_findAllByCount.action",function(data){
			$("#test").highcharts({
				title: {
		            text: '区域分区分布图'
		        },
		        series: [{
		            type: 'pie',
		            name: '区域分区分布图',
		            data: data
		        }]
			});
		});
	}
下面是后端返查询数据,返回给前端(地区名称),(统计数量)

第四步:在服务端Action中提供方法

	/**
	 * 查询区域分区分布图数据
	 */
	public String findAllByCount(){
		List<Object> list = subareaService.findAllByCount();
		this.java2Json(list, new String[]{});
		return NONE;
	}

Dao代码:

@Repository
public class SubareaDaoImpl extends BaseDaoImpl<Subarea> implements ISubareaDao {
	public List<Object> findSubareasGroupByProvince() {
		String hql = "SELECT r.province ,count(*) FROM Subarea s LEFT OUTER JOIN s.region r Group BY r.province";
		return (List<Object>) this.getHibernateTemplate().find(hql);
	}
}







































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值