JS highcharts实现动态曲线代码示例


Posted in Javascript onOctober 16, 2020

Highcharts是一个制作图表的纯Javascript类库, 

主要特性如下:

兼容性:兼容当今所有的浏览器,包括iPhone、IE和火狐等等;

对个人用户完全免费;

纯JS,无BS;

支持大部分的图表类型:直线图,曲线图、区域图、区域曲线图、柱状图、饼装图、散布图;

跨语言:不管是PHP、.net还是Java都可以使用,它只需要三个文件:一个是

Highcharts的核心文件highcharts.js,还有a canvas emulator for IE和Jquery类库或者MooTools类库;

提示功能:鼠标移动到图表的某一点上有提示信息;

放大功能:选中图表部分放大,近距离观察图表;

易用性:无需要特殊的开发技能,只需要设置一下选项就可以制作适合自己的图表;

时间轴:可以精确到毫秒;

其官网网站为:http://www.highcharts.com/ !

里面有他们的例子和参考代码,可以参考着实现自己的应用,如果你做的是静态的图形展示,那么使用是非常简单的!

参照官网的一个例子,我来实现一个动态曲线的应用:

效果如下:

JS highcharts实现动态曲线代码示例

这个曲线是动态的,他的官网效果地址:http://www.highcharts.com/demo/dynamic-update !

我把他应用到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 实现数据点的增加和刷新!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
onsubmit阻止form表单提交与onclick的相关操作
Sep 03 Javascript
js写一个弹出层并锁屏效果实现代码
Dec 07 Javascript
原生javascript和jquery判断浏览器版本等信息
Jul 04 Javascript
js实现在网页上简单显示时间的方法
Mar 02 Javascript
每个程序员都需要学习 JavaScript 的7个理由小结
Sep 03 Javascript
BootStrap table使用方法分析
Nov 08 Javascript
用director.js实现前端路由使用实例
Jan 27 Javascript
前端主流框架vue学习笔记第一篇
Jul 26 Javascript
微信小程序开发animation心跳动画效果
Aug 16 Javascript
浅谈在vue项目中如何定义全局变量和全局函数
Oct 24 Javascript
Vue数据驱动表单渲染,轻松搞定form表单
Jul 19 Javascript
VSCode Vue开发推荐插件和VSCode快捷键(小结)
Aug 08 Javascript
Swiper实现导航栏滚动效果
Oct 16 #Javascript
node.js通过url读取文件
Oct 16 #Javascript
vue组件实现移动端九宫格转盘抽奖
Oct 16 #Javascript
Vue3.0的优化总结
Oct 16 #Javascript
JavaScript通如何过RGraph实现动态仪表盘
Oct 15 #Javascript
利用js实现简易红绿灯
Oct 15 #Javascript
关于Node.js中频繁修改代码重启服务器的问题
Oct 15 #Javascript
You might like
discuz 首页四格:最新话题+最新回复+热门话题+精华文章插件
2007/08/19 PHP
php将时间差转换为字符串提示
2011/09/07 PHP
深入解析PHP的引用计数机制
2013/06/14 PHP
php读取文件内容的几种方法详解
2013/06/26 PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
2019/12/31 PHP
PHP重载基础知识回顾
2020/09/10 PHP
Javascript 同时提交多个Web表单的方法
2009/02/19 Javascript
php上传图片并给图片打上透明水印的代码
2010/06/07 Javascript
js中top、clientTop、scrollTop、offsetTop的区别 文字详细说明版
2011/01/08 Javascript
js综合应用实例简单的表格统计
2013/09/03 Javascript
使用javascript实现ListBox左右全选,单选,多选,全请
2013/11/07 Javascript
js判断是否按下了Shift键的方法
2015/01/27 Javascript
JavaScript中连接操作Oracle数据库实例
2015/04/02 Javascript
jQuery实现带玻璃流光质感的手风琴特效
2015/11/20 Javascript
浅谈EasyUI常用控件的禁用方法
2016/11/09 Javascript
angularjs中ng-attr的用法详解
2016/12/31 Javascript
分分钟玩转Vue.js组件(二)
2017/03/01 Javascript
vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
2017/08/04 Javascript
vue项目如何刷新当前页面的方法
2018/05/18 Javascript
一个因@click.stop引发的bug的解决
2019/01/08 Javascript
微信小程序实现炫酷的弹出式菜单特效
2019/01/28 Javascript
Vue v-for中的 input 或 select的值发生改变时触发事件操作
2020/08/31 Javascript
Python遍历目录的4种方法实例介绍
2015/04/13 Python
Python实现SVN的目录周期性备份实例
2015/07/17 Python
python django 增删改查操作 数据库Mysql
2017/07/27 Python
python+selenium+autoit实现文件上传功能
2017/08/23 Python
python 快速把超大txt文件转存为csv的实例
2018/10/26 Python
python async with和async for的使用
2019/06/20 Python
Python使用正则表达式分割字符串的实现方法
2019/07/16 Python
python conda操作方法
2019/09/11 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
2020/02/17 Python
详解利用css3的var()实现运行时改变scss的变量值
2021/03/02 HTML / CSS
Html5页面内使用JSON动画的实现
2019/01/29 HTML / CSS
德国药房apodiscounter中文官网:德国排名前三的网上药店
2019/06/03 全球购物
导游词之青城山景区
2019/09/27 职场文书
基于CSS3画一个iPhone
2021/04/21 HTML / CSS