文章主要针对hightcharts的数据格式
防止遗忘各个highcharts的数据传输格式
啥也不说,上代码
//该方法为显示为折线图 //data:元素为json对象的数组[{name:名称,data:[12条数据(对应12月份)的数组]},{},{}] // 如 [{ // name: 'Tokyo', // data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6] // }, { // name: 'London', // data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8] // }] function showLine(data, year,status,big_type_name) { chart = new Highcharts.Chart({ chart : { renderTo : 'container', }, title: { text: year+big_type_name+'年视频月浏览量趋势图', x: -20 //center }, credits:{ enabled:false }, xAxis: { categories: ['一月', '二月', '三月', '四月', '五月', '六月','七月', '八月', '九月', '十月', '十一月', '十二月'] }, yAxis: { title: { text: '浏览量 (/人次)' }, plotLines: [{ value: 0, width: 1, color: '#808080' }] }, tooltip: { valueSuffix: '人次' }, legend: { layout: 'vertical', align: 'right', verticalAlign: 'middle', borderWidth: 0 }, plotOptions : { line : { allowPointSelect : true, cursor : 'pointer', //添加点击事件 events : { click :function (e){ if(status==1){ showTendency(year, this.name,status); } } } } }, series: data }); }
接收后端数据
function showTendency(year,big_type_name,status) { $.ajax({ url : "getLineFromWatchedByYearAndBig_Type.do", dataType : "json", cache : true, type : "POST", data : {"year":year,"font_big_type_name":big_type_name}, async : true, success : function(data) { //定义一个数组 //data是后端传回一个List<Map<>> ,由于在后端排好格式,所以可以再前端直接传给highcharts if(!big_type_name==""){ status="0"; } showLine(data, year,status,big_type_name); }, error : function() { alert("error"); } }); }后端代码
List<Map<String,Object>> listRes=new ArrayList<>(); Map<String, Object> mapRes=new HashMap<>(); //name为每条折线名称 mapRes.put("name", name); //arr是int[12] mapRes.put("data", arr); //mapRes可以有很多个 listRes.add(mapRes); System.out.println(listRes); return listRes;//返回结果一定要是json格式,如果用spring框架就在方法上加@ResponseBody注解