Highcharts动态赋值学习
最近老大让做项目中的统计图表功能,需要使用highcharts这个插件,弄出来了两种类型的图表动态赋值的实现,首先贴上中文网的官网和api地址,使用这个英语不好的同学肯定会用到的:
中文网官网:http://www.hcharts.cn/
中文网API:http://www.hcharts.cn/api/index.php#Series
我后台用的是java,主要是后台封装数据后放到json里面,然后在前台获取后进行调用。
到现在,总共弄出来了折线图和饼图的动态赋值的功能:
这个是折线图的前台数据:没有使用api来进行赋值,而是直接处理成需要的data和name然后直接写到name和data后面去的,不够灵活
关于下面代码中的ajax里面的js数据看不懂的请请教专业js同学,我的也是别人帮忙写的
1 $.ajax({
type : 'POST',
dataType : 'JSON',
url: 'admin/showtable/data',
success:function(result){
/* line---data */
var lineresult = result.worklog;
console.log(lineresult);
var xdata = [];
var series = [];
var temp = {};
for (var i in lineresult) {
xdata.push(lineresult[i]["worklogdate"]);
if (!temp[lineresult[i].worktype]) {
temp[lineresult[i].worktype] = [lineresult[i]["SUM(worktime)"]];
} else {
temp[lineresult[i].worktype].push(lineresult[i]["SUM(worktime)"]);
}
}
for (var i in temp) {
series.push({"name":i,"data":temp[i]});
}
console.log(series); //获取series里面的name和data
console.log(xdata); //获取x轴的日期
console.log(temp);
/*设置饼图数据*/
var pieresult = result.dataforworktype;
console.log(pieresult);
var chart = $('#pie').highcharts();
chart.series[0].setData(pieresult); //折线图
$('#line').highcharts({ credits: {
enabled: false, //去掉版权信息,就是右下角显示的highchars的网站链接 也可以显示成自己的链接,具体请搜索api
},
chart: {
renderTo:'line',
type: 'line' //指定图表的类型,默认是折线图(line)
},
title: {
// text: '工时统计', //指定图表标题
text: '<span style="font-size:24px;font-weight:bolder;color:Black;">工时统计</span>', //图表标题可以设置为html标签 方便设置样式
x: -50
}, xAxis: { //指定x轴分组
type: 'date',
showEmpty: false,
startOnTick: false,
categories: xdata,
labels: {
rotation: -90, //竖直放
rotation: -45 //45度倾斜
},
dateTimeLabelFormats:{
year: '%Y',
month: '%b \ %y',
day: '%e. %b'
}, },
yAxis: {
title: {
text: 'XXXX' //指定y轴的标题(显示工时的数量每1个小时为一格,依次递增)
},
categories:
['0','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24'],
min:'0',
plotLines: [{ //Y轴的数目对应的横线的样式 标线属性
value: 0, //Y轴显示的数字
width: 1, //Y轴上数字对应水平线的宽度
color: '#808080' //水平线的颜色
}]
},
tooltip: { //数据点的提示框
valueSuffix: 'h' //后缀
},
legend: { //图例
layout: 'horizontal', //水平
itemDistance: 50, //图例水平间距
align: 'center', //样式居中
verticalAlign: 'bottom', //垂直对齐 top顶部对齐,middle中间对齐,bottom底部对齐
borderWidth: 0
},
series: series
});
}
});
这里是折线图需要的series封装的数据类型,直接放到插件中series后面可以使用,在图表中name显示的折线的种类,data显示为折线中的节点

/****************************** 以下为饼图的数据 ******************************/
//饼图
$('#pie').highcharts({
credits: {
enabled: false, //去掉版权信息
},
chart: {
plotBackgroundColor: null, //绘制图形区域的背景颜色
plotBorderWidth: null, //边框宽度
plotShadow: false, //绘制区投影
type: 'pie'
},
title: {
text: 'xxxx'
},
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>' //鼠标放到图形上面后显示框中的提示数据
},
plotOptions: {
pie: {
allowPointSelect: true, //选中某块区域是否允许分离
cursor: 'pointer', //更换鼠标指针样式
dataLabels: {
enabled: true, //是否直接呈现数据 也就是外围显示数据与否
//format: '<b>{point.name}</b>: {series.percentage:.1f} ', //这里的意思是饼图周围显示的数据类型格式,默认的demo里面显示的是百分比,我下面使用的formatter配置,是使用了一个函数来进行格式化,基本通用的
formatter:function(index){
return '<b>'+ this.point.name +'</b>: '+ Highcharts.numberFormat(this.y, 1, '.')+'h';
},
style: {
color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black' //设置饼图周边显示的数据的样式
}
},
showInLegend: true //显示图例
}
},
series:
[{
name: '时间', //鼠标放到图标上显示框中的单位提示字符
data: [] //数据设置为空,可以使用api赋值,饼图的数据设置请看上图:折线图配置部分的ajax中的特殊颜色标记部分
}]
});
下面是饼图需要封装的数据格式:name和y 这里是我在后台获取数据的时候讲select后面的数据设置的别名,设置为这样的话更方便highchars来进行读取

最后附上一张效果图:
折线图:

饼图:

欢迎高手指教和新手交流,有事情留言
Highcharts动态赋值学习的更多相关文章
- Java注解如何对属性动态赋值
学而不思则罔,思而不学则殆 前言 大家都用过Spring的@Value("xxx")注解,如果没有debug过源码的同学对这个操作还是一知半解,工作一年了学了反射学了注解,还是不会 ...
- URL动态赋值
url动态赋值: 指的是url中包含{selector},即花括号括起来的jQuery选择器,当提交该url时,框架会自动将selector对应元素的值替换到花括号所占区域. (感觉实现了一点类似el ...
- 使用 Attribute +反射 来对两个类之间动态赋值
看同事使用的 一个ORM 框架 中 有这样一个功能 通过特性(附加属性)的功能来 实现的两个类对象之间动态赋值的 功能 觉得这个功能不错,但是同事使用的 ORM 并不是我使用的 Dapper 所 ...
- Jquery为下拉列表动态赋值与取值,取索引
接触前端也不久对jquery用的也只是皮毛,写过去感觉能复用的发出来,大家指点下 1.下拉列表动态赋值 function initddlYear() { var mydate = new Date() ...
- Oracle游标动态赋值
1. oracle游标动态赋值的小例子 -- 实现1:动态给游标赋值 -- 实现2:游标用表的rowtype声明,但数据却只配置表一行的某些字段时,遍历游标时需fetch into到精确字段 CREA ...
- javascript如何解析json对javascript如何解析json对象并动态赋值到select列表象并动态赋值到select列表
原文 javascript如何解析json对象并动态赋值到select列表 JSON(JavaScriptObject Notation)一种简单的数据格式,比xml更轻巧.JSON是JavaScri ...
- CgLib动态代理学习【Spring AOP基础之一】
如果不了解JDK中proxy动态代理机制的可以先查看上篇文章的内容:Java动态代理学习[Spring AOP基础之一] 由于Java动态代理Proxy.newProxyInstance()的时候会发 ...
- C# 实体/集合差异比较,比较两个实体或集合值是否一样,将实体2的值动态赋值给实体1(名称一样的属性进行赋值)
/// <summary> /// 实体差异比较器 /// </summary> /// <param name="source">源版本实体& ...
- jQuery Distpicker插件 省市区三级联动 动态赋值修改地址
在获取创建页面数据后需要在编辑页面调取之前提交的数据,在使用这个插件后发现无法动态赋值,查找资料后发现需要先销毁实例,$(’#target’).distpicker(‘destroy’); 第一步 引 ...
随机推荐
- myeclipse10 .jsp将表单提交给.java(form网页与后台通信初识)
做毕设需要用到form通信. 以下几张截图来自极课学院 servlet jsp文件 web配置 出现错误: 路径问题 仍然不对,需要再改 <form action="servlet/S ...
- dig理解dns主备 - 阿权的书房
dns的解析一般都授权两个以上,防止单点故障. 比如阿权的书房的域名 www.aslibra.com,授权两台ns.aslibra.com 和 ns2.aslibra.com,如果单点故障会怎么样呢? ...
- Net-Speeder为OpenVZ加速
VPS购买地址 1. net-speeder安装 wget https://coding.net/u/njzhenghao/p/download/git/raw/master/net_speeder- ...
- 通过IP的方式建立PSSession
Import-Module PoshWSUS Connect-PoshWSUSServer -WsusServer cnhzsrv09 Get-PoshWSUSClient | Select-Obje ...
- linux下挂在u盘,移动硬盘的方法,转移服务器资料的时候,使用移动硬盘什么最方便了
本文章是在centos环境下操作的 最近linux服务器我不小心吧root下面的用户配置,不能远程登录,而且我对linux系统配置也不熟悉,最后的办法就是去了一趟机房,还好是在深圳南山科技园,不算太远 ...
- 查找文件是否安装以及安装路径(Ubuntu 下 )
参考:<linux下如何查看某个软件 是否安装??? 安装路径在哪???> 原文: 如果你使用rpm -ivh matlab装的, 用rpm -qa | grep matlab肯定是能够找 ...
- 怎么样打印加密PDF文件
自然是解密后再打印.解密的方法,在linux下执行: pdf2ps xxx.pdf ps2pdf xxx.ps 参考资料 http://www.cyberciti.biz/faq/removing-p ...
- 20145235 《Java程序设计》实验二
实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验步骤 单元测试 代码及则是结果: public cla ...
- PHP文件操作 之读取一个文件(以二进制只读的方式打开)
最近应用了文件的读取,顺便复习一下! //读取一个文件 $f = fopen($filename,'rb'); $f: 表示返回的一个资源句柄 $filename:要打开的文件路径 rb:参数,表示只 ...
- mysql的事务和select...for update
一.mysql的事务mysql的事务有两种方式:1.SET AUTOCOMMIT=0;也就是关闭了自动提交,那么任何commit或rollback语句都可以触发事务提交;如果SET AUTOCOMMI ...