以前做过highcharts生成曲线图的功能,但是那只是知道固定的X轴和Y轴固定的。只有一对,所以传过来的数据比较好处理。但是如果有多个Y轴数据呢?我们改如何处理?这就需要highcharts动态生成曲线图。
看代码:
后台代码:
写道
/**
* charts的生成
* @return
*/
@RequestMapping("charts")
public String charts(Model model){
String x="\"field0\":\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\",\"11\",\"12\"";
String ys="\"field1\":\"88\",\"59\",\"57\",\"58\",\"56\",\"54\",\"79\",\"51\",\"76\",\"87\",\"56\",\"74\";"
+ "\"field2\":\"23\",\"45\",\"25\",\"12\",\"67\",\"90\",\"56\",\"34\",\"56\",\"12\",\"23\",\"44\";"
+ "\"field3\":\"65\",\"23\",\"12\",\"11\",\"10\",\"3\",\"1\",\"34\",\"21\",\"22\",\"67\",\"99\";";
model.addAttribute("x", x);
model.addAttribute("ys", ys);
return "/empfile/emp2";
}
* charts的生成
* @return
*/
@RequestMapping("charts")
public String charts(Model model){
String x="\"field0\":\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"10\",\"11\",\"12\"";
String ys="\"field1\":\"88\",\"59\",\"57\",\"58\",\"56\",\"54\",\"79\",\"51\",\"76\",\"87\",\"56\",\"74\";"
+ "\"field2\":\"23\",\"45\",\"25\",\"12\",\"67\",\"90\",\"56\",\"34\",\"56\",\"12\",\"23\",\"44\";"
+ "\"field3\":\"65\",\"23\",\"12\",\"11\",\"10\",\"3\",\"1\",\"34\",\"21\",\"22\",\"67\",\"99\";";
model.addAttribute("x", x);
model.addAttribute("ys", ys);
return "/empfile/emp2";
}
通过把x轴的数据和Y轴的数据,放到页面上。
前台页面:
引入jQuery和highcharts.js这个引入就可以了。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="../../static/lib/jquery/jquery-1.11.2.min.js"></script> <title>Insert title here</title> <script type="text/javascript"> $(document).ready(function(){ alert("jquery正常工作"); }); $(function () { var x='<%=request.getAttribute("x")%>';//接收从后台传的x数据 x=x.split(":")[1];//取出x数组 x=x.replace(/\"/g,"");//去掉双引号 x=x.split(",");//拆分出数组 var ys='<%=request.getAttribute("ys")%>';//接收从后台传的y数据 ys=ys.split(";");//取出有多少个y轴数据 //曲线展示区域代码 $('#container').highcharts({ chart: { type: 'line' }, title: { text: 'Monthly Average Temperature', x: -20 //center }, subtitle: { text: 'Source: WorldClimate.com', x: -20 }, xAxis: { categories:x }, yAxis: { title: { text: 'Temperature (°C)' }, plotLines: [{ value: 0, width: 1, color: '#808080' }] }, tooltip: { valueSuffix: '°C' }, legend: { layout: 'vertical', align: 'right', verticalAlign: 'middle', borderWidth: 0 } }); for(var m=0;m<ys.length;m++){ var y=ys[m].replace(/\"/g,"");//先取出所有的双引号 var name=y.split(":")[0];//取出y轴的名字,也就是filed字段的名字 y=y.split(":")[1];//取出y轴数组 y=y.split(","); var array=new Array();//保证y轴的数组必须是数字数组 for(var i=0;i<y.length;i++){ array.push(parseInt(y[i])); } //填充Series序列数组 $('#container').highcharts().addSeries({// name:name, data:array }); } // $('#container').highcharts().addSeries({ // name:'fffffff', // 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] // }); // $('#container').highcharts().addSeries({ // name:'ggggggggg', // data:[3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 50] // }); alert( $('#container').highcharts().series[0].name); alert( $('#container').highcharts().series[0].data); }); </script> </head> <body> <div>${x}</div><br> <div>${ys}</div> <div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div> </body> <script src="../../static/highcharts.js"></script> </html>
核心方法就是addSeries,其他的很简单。主要注意的是Y轴传的数组一定要是数字数组。X轴只要是数组就可以了。
相关推荐
jquery highcharts动态加载多条数据表走势图代码 jquery highcharts动态加载多条数据表走势图代码 jquery highcharts动态加载多条数据表走势图代码
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zongzhankui/article/details
jQuery及highcharts做cpu动态走势图,https://blog.csdn.net/qq_40374604/article/details/83578837,有问题请留言
Highcharts多个图表共用一个提示框,每个图表多条曲线,下载后直接使用,如有问题欢迎咨询。
Highcharts AJAX后台JAVA JSON 曲线报表完美可运行例子 不包含官方JS 自己下载
做数据的图标显示,适合用highcharts.js插件来实现,可以做曲线图、柱状图、面积图等
highcharts 动态指定 x y数据
highcharts加载数据库数据(java版)-附件资源
使用highcharts实现饼图和曲线图的展示
Highcharts 构建曲线图。最简单的一个例子。 最简单的代码,web项目,解压后直接导入运行即可
用highcharts实现从mysql数据库获取数据生成实时折线图。开发平台是用eclipse实现的,是一个项目,用jsp显示从数据库读取的实时折线图。
附件就是一个java Web工程,导入myeclipse后可以直接运行,该实例是一个线性图,异步ajax到服务器servlet读取数据。
jQuery highcharts适时更新加载的图表插件,当图片加载数据后,立即绘制出曲线图,若数据有更新,会适时加载数据,并重新生成曲线图,是一款适时加载数据并更新曲线图的图表插件。在测试时,你会发现,图片自右向左...
Highcharts提供的Geojson世界地图数据集的国家名称中文翻译,Vue使用Highcharts实现世界地图的详细介绍来自我的另一篇文章,可供参考,有问题可随时联系,感谢支持: ...
近段时间一直在用highcharts做图表,由于官网API加载速度慢,查询起来不方便,网上也没有chm格式的api。所以花了几天时间,自己动手做了一个chm格式的API,内容与官网一致,查询起来也方便。特此提供给有需要的童鞋...
报表显示 highcharts 报表显示 highcharts 报表显示 highcharts
jquery Highcharts jquery Highcharts jquery Highcharts
js画饼状图 柱状图 曲线图,实现中文描述,自定义模块名称,用Highcharts实现饼状图 柱状图 曲线图,可参开Highcharts开发文档
HighCharts的2017年使用的实例,此番为折线图,一个图里包含多条折线,业务需求:展示多个支付方式,在某段时间内,刷卡金额的趋势折线图。我用的方法比较笨,将支付方式一个一个列出来了,还有优化的空间,不过完全...