1、highcharts的基本属性
var chartTitle = '用户注册曲线图'; var lineChartData_hg = { chart: { //图表总体的设置 type: 'line', renderTo:domId, zoomType:'x' //控制图表是否可以拉伸 }, title: { //图表标题 text: chartTitle //标题名称 }, xAxis:{ type:'datetime', //tickInterval:timeFlag, dateTimeLabelFormats:{ second:'%H:%M', minute:'%H:%M', hour:'%H:%M', day:'%m/%d', week:'%m/%d', month:'%Y-%m', year:'%Y' }, minRange:function () { return '1000 * 60 * 10 * 10'; } }, yAxis: { //Y轴 min:0, title: { text: '个数(个)' //y轴标题 } }, tooltip:{ shared:true, crosshairs:true, formatter:function () { var info ; if('DAY'==viewType){ info = "<b>" + Highcharts.dateFormat("时间:%Y年%m月%e日 ", this.x) + "</b>"; }else if('WEEK'==viewType){ var year = new Date(this.x).getFullYear(); var d = new Date(this.x); var week = userRegist_hg.getYearWeek(d); info = "<b>" +year+'年'+ week+'周' + "</b>"; }else if('MONTH'==viewType){ info = "<b>" + Highcharts.dateFormat("时间:%Y年%m月 ", this.x) + "</b>"; }else if('SEASON'==viewType){ var year = new Date(this.x).getFullYear(); var month = new Date(this.x).getMonth()+1; var m = 0; if(month==1||month==2||month==3){ m = 1; }else if(month==4||month==5||month==6){ m=2; }else if(month==7||month==8||month==9){ m=3; }else if(month==10||month==11||month==12){ m = 4 ; } info = "<b>" + year+'年' +m+'季'+ "</b>"; }else if('YEAR'==viewType){ info = "<b>" + Highcharts.dateFormat("时间:%Y年 ", this.x) + "</b>"; } $.each(this.points, function (i, point) { info += "<br/>" + point.series.name + ":" + point.y+"(个)"; }); return info; } }, legend:{ }, plotOptions: { //图表标示的各种选项 spline: { //这里由于是折线图,那么就是折线图的选项 dataLabels: { //数据标签 enabled: true //允许显示数据,默认为false,不显示具体数据 }, enableMouseTracking: false //这个让鼠标放到数据点的时候,不动态显示一个小圆圈,默认为true }, line: { //这里由于是折线图,那么就是折线图的选项 dataLabels: { //数据标签 enabled: true //允许显示数据,默认为false,不显示具体数据 }, enableMouseTracking: false //这个让鼠标放到数据点的时候,不动态显示一个小圆圈,默认为true } }, series: [] } lineChartData_hg.series = data.list; userRegistLines_hg = new Highcharts.Chart(lineChartData_hg);
2、后台数据封装:
相对于idea的rails语言来说,eclipse采用java的语言来封装想对要麻烦一些,但是只要知道返回的json的数组是什么样的,就可以封装成类似的json过来 @RequestMapping(value = "/userLoginLineChart", method = RequestMethod.POST) @ResponseBody public Object userLoginLineChart(String viewType,HttpServletRequest request, HttpSession httpSession, Model model) throws Exception { String errorInfo = "ok"; Map<String,Object> jsonMap = new HashMap<String,Object>(); List<Object> list = new ArrayList<Object>(); // 传递过来的list直接赋给series,series是一个数组 Map<String ,Object> line = new HashMap<String, Object>();//line指代第一条线 List<Object> data = new ArrayList<Object>();//data用来存数据点 line.put("name", "登录"); line.put("color", "#4572A7"); line.put("yAxis", 0); line.put("visible", true); Map<String, Object> marker = new HashMap<String, Object>(); marker.put("enabled", false); line.put("marker", marker); ResultDto resultDto = userMonitorService.drawUserLoginLineChart(viewType,httpSession); //errorInfo 用来处理错误信息,如果是error,直接提示错误,如果是logout,重新进入登录界面 errorInfo = ResultUtil.VerifyResultEntity4Json(httpSession, resultDto); if(!"ok".equals(errorInfo)){ jsonMap.put("errorInfo", errorInfo); return jsonMap; } if (resultDto.getEntity() != null) { UserRegistLineList lineList = (UserRegistLineList) resultDto.getEntity(); if(null!=lineList&&0<lineList.getList().size()){ for(int i=0;i<lineList.getList().size();i++){ Object[] d = new Object[2]; UserRegistLine l = lineList.getList().get(i); d[0] = l.getMincreateTime(); d[1]=l.getCount(); data.add(d); } } } jsonMap.put("errorInfo", errorInfo); line.put("data", data); list.add(line); jsonMap.put("list",list); return jsonMap; }
3、页面jsp处理片段:
<div id="drawUserRegistLineData" > loading... </div> <script type="text/javascript"> $(function(){ // 初始化div的宽度,不然第一次进入页面的时候,宽度和后面加载的宽度不一致 $('#drawUserRegistLineData').css('width', (window.screen.availWidth - 175)*0.9); // 进入页面的时候,调用方法 userRegist_hg.drawUserRegistLine($("#drawLineChart4Time").val(),'drawUserRegistLineData'); }); </script>
4、ajax调用后台的数据,并对数据解析成线性图(错误处理)
userRegist_hg.drawUserRegistLine = function(viewType,domId){ $.ajax({ url: serverContext + "/userMonitor/userRegistLineChart", async : true, type:'post', data: {"viewType":viewType}, dataType:'json', success:function(data){ var err = data.errorInfo; // 错误处理 if (err && err != "ok") { if (err == "logout") { handleSessionTimeOut(); return; } else { jAlert(err); } } else { //画图 var chartTitle = '用户注册曲线图'; lineChartData_hg = { chart: { //图表总体的设置 type: 'line', renderTo:domId, zoomType:'x' }, title: { //图表标题 text: chartTitle //标题名称 }, xAxis:{ type:'datetime', //tickInterval:timeFlag, dateTimeLabelFormats:{ second:'%H:%M', minute:'%H:%M', hour:'%H:%M', day:'%m/%d', week:'%m/%d', month:'%Y-%m', year:'%Y' }, minRange:function () { return '1000 * 60 * 10 * 10'; } }, yAxis: { //Y轴 min:0, title: { text: '个数(个)' //y轴标题 } }, tooltip:{ shared:true, crosshairs:true, formatter:function () { var info ; if('DAY'==viewType){ info = "<b>" + Highcharts.dateFormat("时间:%Y年%m月%e日 ", this.x) + "</b>"; }else if('WEEK'==viewType){ var year = new Date(this.x).getFullYear(); var d = new Date(this.x); var week = userRegist_hg.getYearWeek(d); info = "<b>" +year+'年'+ week+'周' + "</b>"; }else if('MONTH'==viewType){ info = "<b>" + Highcharts.dateFormat("时间:%Y年%m月 ", this.x) + "</b>"; }else if('SEASON'==viewType){ var year = new Date(this.x).getFullYear(); var month = new Date(this.x).getMonth()+1; var m = 0; if(month==1||month==2||month==3){ m = 1; }else if(month==4||month==5||month==6){ m=2; }else if(month==7||month==8||month==9){ m=3; }else if(month==10||month==11||month==12){ m = 4 ; } info = "<b>" + year+'年' +m+'季'+ "</b>"; }else if('YEAR'==viewType){ info = "<b>" + Highcharts.dateFormat("时间:%Y年 ", this.x) + "</b>"; } $.each(this.points, function (i, point) { info += "<br/>" + point.series.name + ":" + point.y+"(个)"; }); return info; } }, legend:{ }, plotOptions: { //图表标示的各种选项 spline: { dataLabels: { //数据标签 enabled: true }, enableMouseTracking: false }, line: { dataLabels: { //数据标签 enabled: true }, enableMouseTracking: false } }, series: [] } lineChartData_hg.series = data.list; userRegistLines_hg = new Highcharts.Chart(lineChartData_hg); } }, error:function(xhr,textStatus,errorThrown){ jAlert("服务器异常,请稍后重试.."); } });
5、后台返回的json
{"errorInfo":"ok","list":[{"yAxis":0,"visible":true,"marker":{"enabled":false},"color":"#4572A7","name":"登录","data":[[1369852043000,1],[1405502337000,1],[1408180758000,3],[1408324354000,6],[1408430898000,6],[1408501492000,10],[1408586348000,6],[1408677130000,1],[1409205479000,2],[1409897710000,1],[1410773341000,1],[1410832946000,1],[1412839081000,1],[1413009726000,3]]}]}
5.效果图(附件)
相关推荐
本压缩包"Highcharts-2.3.2"包含了Highcharts 2.3.2版本的源码和相关资源,为开发者提供了丰富的示例程序,以便更好地理解和应用这个强大的图表库。 首先,我们来深入了解一下Highcharts的基本特性: 1. **易用性*...
Highcharts中文网是一个专门提供Highcharts相关教程和示例的平台,旨在为中文用户学习和使用Highcharts提供便利。 首先,Highcharts的基本使用涉及到以下几个方面: 1. **引入资源**:在HTML文件中,我们需要引入...
highCharts 示例 demo highCharts入门 highCharts 自己 按照API文档 写的 几个小例子 另一篇 是一个 fusioncharts 的例子 需要的朋友看看 另外 怎么用highcharts 和 fusioncharts 画 雷达图 ,仪表图 ,会的 朋友 ...
这个"Highcharts画折线图"的主题涉及到使用Highcharts来绘制动态、交互式的折线图,这对于数据可视化和数据分析来说是非常重要的。下面将详细介绍如何利用Highcharts库创建折线图以及相关的知识点。 1. **...
Highcharts-4.0.3 官方示例,添加样式更方便操作,修改源代码提供次刻度尺功能,修改部分之前版本的bug,修改示例详见:Line charts --> Spline with symbols,仅供学习.
title: { text: '多条曲线数据示例' }, xAxis: { categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] }, yAxis: { title: { text: '值' } }, series: [ { ...
在"highcharts示例代码(官方例子)"中,你将找到一系列官方提供的示例,这些示例涵盖了Highcharts的多种图表类型和功能。通过学习和研究这些示例,你可以快速掌握如何在自己的项目中应用Highcharts。 1. **基本...
通过学习和实践这些简单示例,我们可以掌握Highcharts的基本用法,并在此基础上进一步定制和扩展,以满足特定的项目需求。无论是在数据分析、业务报告还是产品展示中,Highcharts都是一个非常实用的工具。
Highcharts是一款广泛应用于Web开发中的JavaScript图表库,它允许开发者创建出丰富、互动且美观的统计图表。在3.0.6版本中,这个库提供了多种图表类型,包括柱状图、折线图、饼图、散点图、面积图等,能够满足不同...
从事过ASP.NET开发的可能都会接触到一些图表控件,比如OWC、ZendGraph等等,这些控件都有一个特点,那就是我们可以像操作...本资源是http://blog.csdn.net/zhoufoxcn/archive/2011/04/07/6306759.aspx一文的示例代码。
Highcharts是一款强大的JavaScript图表库,它能够帮助开发者创建各种类型的图表,包括柱状图、折线图、饼图以及我们关注的雷达图等。在Web应用中,雷达图常用于展示多维数据,每个轴代表一个特性或指标,数据点则...
总的来说,HighCharts凭借其强大的功能、友好的API和广泛的示例,成为了一个值得推荐的JavaScript图表库,无论是在数据可视化还是在报表制作中,都能发挥重要作用。对于开发者来说,理解和掌握HighCharts,无疑能够...
"HighCharts示例图"是官方提供的一系列演示,涵盖了HighCharts的各种功能和应用场景。 在HighCharts-3.0.8这个压缩包中,你将找到一系列示例代码和资源,帮助你快速理解和应用HighCharts。以下是一些关键知识点的...
highcharts参考手册,列举highcharts属性大全及示例。
在"Highcharts-4.1.9"这个压缩包中,你将找到Highcharts的库文件、示例代码和相关的文档资源。通过查看这些示例,你可以学习到如何在自己的项目中集成Highcharts,如何配置图表参数,以及如何处理数据。对于初学者来...
Highcharts JS是一个纯JavaScript制图Library,支持的图表类型包括:line、spline、area、areaspline、column、 bar、pie和scatter。当鼠标移到图表上时会利用一个tooltip展示每一点或区域上相关的文本信息。可以...
在这个压缩包中,很可能包含了Highcharts的基本文件和示例代码,用于帮助开发者理解和使用这个库。 一、Highcharts简介 Highcharts是一个轻量级的图表库,支持多种图表类型,包括柱状图、折线图、饼图、散点图、...
Highcharts 是一个用纯JavaScript编写的一个图表库, 能够很简单便捷的在web网站或是web应用程序添加有交互性的图表,并且免费提供给个人学习、个人网站和非商业用途...此为,Learning Highcharts电子书配套示例源码。
通过学习Highcharts的文档和示例,开发者可以定制出满足各种需求的高级数据可视化解决方案。 总之,Highcharts的js文件是构建数据可视化的强大工具,无论是简单的柱状图还是复杂的动态曲线图,都能轻松实现。通过...
Highcharts是一个制作图表的纯Javascript类库, 主要特性如下: 兼容性:兼容当今所有的浏览器,包括iPhone、IE和火狐等等; 对个人用户完全免费; 纯JS,无BS; 支持大部分的图表类型:直线图,曲线图...