Highcharts实现动态曲线图表的JSP集成示例

作者:小括号时间:2026-10-23 22:38:27浏览:133

本文介绍如何使用纯JavaScript类库Highcharts在JSP页面中实现动态曲线图表。通过引入核心JS文件及jQuery,利用chart对象的events属性调用addPoint方法,以双维数组格式实时刷新数据点,实现类似官网demo的动态更新效果。

Highcharts核心特性介绍

Highcharts是一个用于制作图表的纯JavaScript类库。

其主要特性包括以下几个方面:

兼容性:支持当今所有主流浏览器,涵盖iPhone、IE及Firefox等。

个人用户完全免费使用。

纯JavaScript实现,无需服务器端支持(无BS架构依赖)。

支持多种图表类型,包括直线图、曲线图、区域图、区域曲线图、柱状图、饼图及散布图。

跨语言兼容:无论后端使用PHP、.net还是Java均可调用,仅需三个文件。

所需文件包括Highcharts核心文件、IE的Canvas模拟器以及jQuery或MooTools类库。

具备提示功能:鼠标悬停在图表数据点上时显示提示信息。

支持放大功能:可选中图表部分进行放大,以便近距离观察细节。

易用性强:无需特殊开发技能,仅需配置选项即可生成定制图表。

时间轴精度可达毫秒级。

官方网站地址为:http://www.highcharts.com/。

官网提供示例和参考代码,可据此开发应用;若仅需静态图形展示,使用过程非常简便。

动态曲线应用实现

参考官网示例,本文演示如何实现动态曲线应用。

实现效果如下:

Highcharts核心特性介绍

该曲线为动态更新,官网演示地址为:http://www.highcharts.com/demo/dynamic-update。

将其应用于JSP页面的代码如下:

JSP集成代码示例


<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
	<head>
		<title>Highcharts Example</title>
		<script language="javascript" type="text/javascript" src="jquery.min.js"></script>
		<script language="javascript" type="text/javascript" src="highcharts.js"></script>
		<script language="javascript" type="text/javascript" src="exporting.js"></script>
<script type="text/javascript">
$(document).ready(function() {
	Highcharts.setOptions({
		global: {
			useUTC: false
		}
	});
	var chart;
	chart = new Highcharts.Chart({
		chart: {
			renderTo: 'container',
			type: 'spline',
			marginRight: 10,
			events: {
				load: function() {
					// set up the updating of the chart each second
					var series = this.series[0];
					setInterval(function() {
						var x = (new Date()).getTime(), // current time
							y = Math.random();
						series.addPoint([x, y], true, true);
					}, 1000);
				}
			}
		},
		title: {
			text: '<b>Java小强制作</b>'
		},
		xAxis: {
			type: 'datetime',
			tickPixelInterval: 150
		},
		yAxis: {
			title: {
				text: '单位:M'
			},
			plotLines: [{
				value: 0,
				width: 1,
				color: '#808080'
			}]
		},
		tooltip: {
			formatter: function() {
					return '<b>'+ this.series.name +'</b><br/>'+
					Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x) +'<br/>'+
					Highcharts.numberFormat(this.y, 2);
			}
		},
		legend: {
			enabled: false
		},
		exporting: {
			enabled: false
		},
		series: [{
			name: 'Random data',
			data: (function() {
				// generate an array of random data
				var data = [],
					time = (new Date()).getTime(),
					i;

				for (i = -19; i <= 0; i++) {
					data.push({
						x: time + i * 1000,
						y: Math.random()
					});
				}
				return data;
			})()
		}]
	});
});
</script>
	</head>
	<body>
	<div id="container" style="width: 800px;height: 400px"></div>
	</body>
</html>

DIV样式可根据需求自行调整,需重点关注以下两点:

数据格式必须为双维数组。

数据更新机制依赖于chart对象中的events属性,通过定义方法调用addPoint来实现数据点的增加与刷新。

以上为本文全部内容,希望对读者学习有所帮助,欢迎支持本站。

作者最新文章