在jsp中引入插件">
第二步:
用div来画统计图
第三步:
把div与第一步的插件进行绑定代码如下
[html]
$('#line').highcharts({
xAxis: { //横轴
categories: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'],
title: {text: '横轴名称'}
},
yAxis: {//纵轴
title: {
text: '纵轴名称'
}
},
series: [{//画图所依据的数据
data: [1, 3, 5, 2, 3, 9, 6, 7, 3, 5, 4, 3]
}]
});
});
几点说明:
1) 如果不指定统计图类型的话,默认的是折线统计图
2) Series是统计所需要的数据,在本文中需要从后台获取json数据
3) 上面的series只有一条数据{ data: [1, 3, 5, 2, 3, 9, 6, 7, 3, 5, 4, 3]},在图形上的表现是只有一条线如下图
可以发现,为了清楚的知道这条线是指的什么,可以为这条线指定一个名字
上面的一条数据可以加一个name属性
{ name:”折线名”,data: [1, 3, 5, 2, 3, 9, 6, 7, 3, 5, 4, 3]}如图
当然如果需要多条线,那么就需要提供多条数据就可以了
比如:
series:
[{name:”第一条线”,data: [1, 3, 5, 2, 3, 9, 6,7, 3, 5, 4, 3] },
{name:”第二条线”,data: [1, 13, 8, 9, 3, 19, 1, 8, 9, 15, 14, 4] }
]
第四部:异步请求数据获取数据
通过上面的分析,可以发现如果需要对数据绘制统计图,只需要从后台传来一个json数据串就行了,在这里用ajax异步请求数据
异步请求代码如下:
[html]
var drawChart = function(sourceUrl) {
$.ajax({
"type" : "post",
"url" : sourceUrl,
"success" : function(result) {
var data = result.data;//获取数据
var categories = result.categories;//categories类别
var datas = [];
//把data数据处理成一条条json的格式的数据,付给series
for ( var i = 0; i < data.length; i++) {
// 构建折线图数据
datas.push({
name : data[i].name,//线条的名字
data : data[i].data//线条走势所需要的数据
});
}//end for
if (datas.length > 0) {
var stepSize= Math.floor(categories.length/10);
drawLine(datas, categories);//把所需的数据传给highcharts
$("#line").css('display','block');
$("#line").show();
}
},
"dataType" : "json"
});
};
// var chart;
var drawLine = function(data, categoriess) {
chart = new Highcharts.Chart({
chart : {
renderTo : 'line',
defaultSeriesType : 'line'
},
title : {text : '频道观看时长统计图'},
xAxis : {
categories :categoriess,
title:{ text:"时间"}
},
yAxis : {title : {text : '观看时长'} },
legend: {
layout: 'vertical',
backgroundColor: '#FFFFFF',
align: 'left',
verticalAlign: 'top',
x: 50,
y: 20,
floating: true,
shadow: true
},
series :data
});
};
后台得到数据的方法如下
[java]
/**
* 数据统计图
* @throws ParseException
*/
@RequestMapping(value = "/getBaseDataChart.json", method = RequestMethod.POST)
public@ResponseBody
MapgetBaseDetailDataChart(HttpServletRequest request)
throws ParseException {
Map resultMap = new HashMap();
resultMap = getData();
return