Highcharts+Spring饼图使用实例

项目上要用到Hightcharts展示平台机器占用情况,使用这类第三方插件很方便就能实现

JSP:


<script type="text/javascript" src="<%=basePath%>/resources/thirdparty/highcharts/highcharts.js"></script>

<div id="machineRate"  title="按产品线统计机器占比" style="display:inline; width:50%;float: left"></div>

JS:

/**查看机器占比(按产品线) [email protected] 2015/8*/
function loadMachineRate(){
	var chart;
	$(document).ready(function(){
		chart = new Highcharts.Chart({
			//常规图表选项设置
            chart: {
                renderTo: 'machineRate',        //在哪个区域呈现,对应HTML中的一个元素ID
                plotBackgroundColor: null,    //绘图区的背景颜色
                plotBorderWidth: null,        //绘图区边框宽度
                plotShadow: false            //绘图区是否显示阴影
            },
            //图表的主标题
            title: {
                text: '按产品线统计机器占比'
            },
            //当鼠标经过时的提示设置
            tooltip: {
                pointFormat: '{series.name}: <b>{point.percentage}%</b>',
                percentageDecimals: 1
            },
          //每种图表类型属性设置
            plotOptions: {
                //饼状图
                pie: {
                    allowPointSelect: true,
                    cursor: 'pointer',
                    dataLabels: {
                        enabled: true,
                        color: '#000000',
                        connectorColor: '#000000',
                        formatter: function() {
                            //Highcharts.numberFormat(this.percentage,2)格式化数字,保留2位精度
                            return '<b>'+ this.point.name +'</b>: '+Highcharts.numberFormat(this.percentage,2) +' %';
                        }
                    }
                }
            },
            //图表要展现的数据
            series: [{
                type: 'pie',
                name: '机器占比'
            }]

		});
	});
	$.ajax({
		type : "GET",
		url : "machine/getStaticMachineRateByProductLine",
		success : function(data){

			//定义一个数组
	        browsers = [],
	        //迭代,把异步获取的数据放到数组中
	        $.each(data,function(i,d){
	        	var str = "";
	        	switch (d.businessType) {
				case "BUSINESS_WEB":
					str = "网页";
					break;
				case "BUSINESS_DOWNLOAD":
					str = "下载";
					break;
				case "BUSINESS_PLAY":
					str = "点播";
					break;
				case "BUSINESS_VIDEO":
					str = "视频";
					break;
				case "BUSINESS_STREAMING":
					str="流媒体";
					break;
				case undefined:
					str="其他";
					break;
				default:
					break;
				}
	            browsers.push([str,d.machineCount]);
	        });
	        //设置数据
	        chart.series[0].setData(browsers);
		},
		error : function(e){
			/*alert(e);*/
		}
	});
}

Controller:

/**
 * 根据产品线统计机器的占比(饼图)
 */
@RequestMapping("/getStaticMachineRateByProductLine")
@ResponseBody
public List<Map<String, Integer>> getStaticMachineRateByProductLine(){
	List<Map<String, Integer>> machines =  platformMachineService.getStaticMachineRateByProductLine();
	return machines;
}

Service:

/** 根据产品线统计机器占比(饼图)*/
@Override
public List<Map<String, Integer>> getStaticMachineRateByProductLine() {
	return this.platformMachineMapper.getStaticMachineRateByProductLine();
}

Mapper:

/** 根据产品线统计机器占比*/
public List<Map<String, Integer>> getStaticMachineRateByProductLine();

XML:

<!-- 根据产品线查看机器占比 -->
<select id="getStaticMachineRateByProductLine" resultType="Map">
	SELECT pi.pl_business_type AS businessType,COUNT(mc_id) AS machineCount
	FROM platform_machine pm
	LEFT JOIN platform_info pi ON pi.pl_name_en = pm.current_platform
	GROUP BY pi.pl_business_type
	ORDER BY machineCount DESC
</select>

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-08 19:20:16

Highcharts+Spring饼图使用实例的相关文章

Highcharts 3D柱形图;Highcharts 堆叠3D柱形图;Highcharts 3D饼图;Highcharts 3D圆环图

Highcharts 3D柱形图 配置 chart.options3d 配置 以下列出了 3D 图的基本配置,设置 chart 的 type 属性为 column,options3d 选项可设置三维效果. var chart = { type: 'column', options3d: { enabled: true, //显示图表是否设置为3D, 我们将其设置为 true alpha: 15, //图表视图旋转角度 beta: 15, //图表视图旋转角度 depth: 50, //图表的合计

Spring+EhCache缓存实例(详细讲解+源码下载)(转)

一.ehcahe的介绍 EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider.Ehcache是一种广泛使用的开源Java分布式缓存.主要面向通用缓存,Java EE和轻量级容器.它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器,支持REST和SOAP api等特点. 优点: 1. 快速 2. 简单 3. 多种缓存策略 4. 缓存数据有两级:内存和磁盘,因此无需担心容量问题 

Spring.Net 简单实例-02(属性注入)

说明:接续Spring.Net 简单实例-01(IOC) 话不多说看操作 1:为UserInfo添加属性 2: 修改App.config中代码 <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <sectionGroup name="spring"> <section name="cont

Spring中AOP实例详解

Spring中AOP实例详解 需要增强的服务 假如有以下service,他的功能很简单,打印输入的参数并返回参数. @Service public class SimpleService { public String getName(String name) { System.out.println(get name is: + name); return name; } } 定义切面和切点 @Component @Aspect public class L ogAspect { // 定义切

spring+mybatis结合实例

1.通过上两篇文章的学习,大致了解了spring和mybatis的架构和使用原理,下面这篇文章就将给出两者结合的一个小实例,通过该实例进一步探索这两个框架的魅力,工程所需要的所有jar包都在链接:http://pan.baidu.com/s/1kUZmpWb 2.spring+mybatis结合实例 (1)建立数据库mybatis,建立一张user表: (2)建立User.java类: package com.springMyBatis.system.model; public class Us

Spring+EhCache缓存实例

一.ehcahe的介绍 EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider.Ehcache是一种广泛使用的开源Java分布式缓存.主要面向通用缓存,Java EE和轻量级容器.它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器,支持REST和SOAP api等特点. 优点:1. 快速2. 简单3. 多种缓存策略4. 缓存数据有两级:内存和磁盘,因此无需担心容量问题5. 缓存

Spring+EhCache缓存实例(详细讲解+源码下载)

一.ehcahe的介绍 EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider.Ehcache是一种广泛使用的开源Java分布式缓存.主要面向通用缓存,Java EE和轻量级容器.它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器,支持REST和SOAP api等特点. 优点: 1. 快速 2. 简单 3. 多种缓存策略 4. 缓存数据有两级:内存和磁盘,因此无需担心容量问题

Spring DI基础实例解析

1.        在程序中提供需要依赖Spring为其注入属性的属性名和类型 package com.hao947.ioc; public class UserService { private String name; private String year; public void setName(String name) { this.name = name; } public void setYear(String year) { this.year = year; } public

Spring Boot Ajax实例

本文将展示如何使用jQuery.ajax将HTML表单请求发送到Spring REST API并返回JSON响应. 使用的工具 : Spring Boot 1.5.1.RELEASE Spring 4.3.6.RELEASE Maven 3 jQuery Bootstrap 3 1. 项目结构 创建一个标准的Maven项目:ajax-example,用于演示在Spring Boot中使用Ajax技术,搜索用户信息.其结构如下图所示 - 2. 项目依赖 文件:pom.xml <?xml versi