Highcharts动态取值,刷新数据的解决方案
2015-05-28 12:38
946 查看
今天做项目在Highcharts刷新死活找不到有效的解决方案,只能自己研究了,查看API之后,经过N次测试,终于通过了,先将代码贡献出来,帮助大家解决类似问题
这是ajax中的success回调函数,变量cate存放的是要更新的x轴分组,是一个一维数组,类似于这个结构:
由于xAxis属性下的categories属性是个数组,目前只能通过push的方法注入值,直接将数组赋值给categories事不行的,不知道为什么,API上貌似没有这个说明。
原因是因为split转换之后是这个形式:
以下是我定义chart的代码
最终的实现效果是这样的
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/19/127a032b831b73f2846b0b965bc04f29)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/19/c8782a906a68f3fa39fa995c31038e2c)
根据选择的条件不同,会返回不同的数据,若只选择年,则返回每个月的数据,若选择年月,则返回每天的具体收入。
后台代码过多,我就不放上来了,感兴趣的朋友可以留言,我会把实现的源代码发给你,大家一起研究
for(var j=0;j<cate.length;j++){ chart.xAxis[0].categories.push(cate[j]); } chart.series[0].setData(inc); chart.redraw(false);
这是ajax中的success回调函数,变量cate存放的是要更新的x轴分组,是一个一维数组,类似于这个结构:
['分类1','分类2','分类3','分类N',];
由于xAxis属性下的categories属性是个数组,目前只能通过push的方法注入值,直接将数组赋值给categories事不行的,不知道为什么,API上貌似没有这个说明。
chart.series[0].setData(inc);这句话是将封装好的数据set进图表中,data类型有多种格式,具体格式可以参照API,在后台将你选用的格式封装好,传回在前台转换为对应的JSON或者Array即可,不过有一点是要注意的,如果data选用的是一维数组形式,后台传回的String在前台封装成JS数组时,一般选用split方法,但是直接转换之后不能用,
原因是因为split转换之后是这个形式:
['数据1','数据2','数据N']但是我们需要的是这种:
[数据1,数据2,数据N]看出差异来了吧?就是分号,如果有分号,highcharts就不认识了,目前我想到的解决办法就是遍历数组,转换为Number型在放回去。。。
以下是我定义chart的代码
chart = new Highcharts.Chart({ chart: { renderTo: 'container-company', type: 'column', margin: 75, options3d: { enabled: true, alpha: 15, beta: 15, depth: 50, viewDistance: 25 } }, title:{ text: '公司收入' }, plotOptions:{ column: { depth: 25 } }, credits:{ enabled:false }, tooltip: { formatter: function() { //当鼠标悬置数据点时的格式化提示 return '收入:' + Highcharts.numberFormat(this.y, 1)+'<br/>'; } }, xAxis:{ labels: { rotation: -45 }, categories:[] }, yAxis:{ title:{ enabled: true, text: '收入(单位:元/人民币)' } }, series:[{}] });
最终的实现效果是这样的
根据选择的条件不同,会返回不同的数据,若只选择年,则返回每个月的数据,若选择年月,则返回每天的具体收入。
后台代码过多,我就不放上来了,感兴趣的朋友可以留言,我会把实现的源代码发给你,大家一起研究
相关文章推荐
- Highcharts 多个Y轴动态刷新数据的实现代码
- Highcharts之动态刷新——结合后台数据
- Highcharts 多个Y轴动态刷新数据
- HighCharts动态数据刷新
- HighCharts趋势图动态设置Series数组(根据后台决定具体几个data), 并动态刷新数据
- Highcharts之动态刷新——结合后台数据
- highcharts实现动态刷新两(多)组数据
- Ajax请求服务器数据动态刷新HighCharts表格
- Highcharts(二) 基础柱状图 ajax动态刷新
- 使用ajax技术无刷新动态调用新浪股票实时数据
- Struts2的Action中getXXX()方法刷新后无法保存数据的解决方案
- 无刷新动态加载数据,滚动条加载
- Django—Form两种解决表单数据无法动态刷新的方法
- 动态载入数据的无刷新TreeView控件(7)
- js实现手机端可以上拉刷新,动态通过ajax从后台获取数据
- 动态更新highcharts数据
- AngularJS+Echarts利用Ajax实现数据动态刷新
- jquery ajax刷新局部页面,取得数据后,动态的在前台显示
- easyui和highcharts 动态加载数据和X轴数据
- Android动态刷新listview中的数据