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 相关文章推荐
推荐:极酷右键菜单
Nov 29 Javascript
js实现文本框只允许输入数字并限制数字大小的方法
Aug 19 Javascript
使用CoffeeScrip优美方式编写javascript代码
Oct 28 Javascript
Node.js中使用socket创建私聊和公聊聊天室
Nov 19 Javascript
javascript实现可键盘控制的抽奖系统
Mar 10 Javascript
Jquery修改image的src属性,图片不加载问题的解决方法
May 17 Javascript
JQuery EasyUI的一些常用组件
Jul 12 jQuery
在vue项目中安装使用Mint-UI的方法
Dec 27 Javascript
微信小程序模版渲染详解
Jan 26 Javascript
jQuery实现监听下拉框选中内容发生改变操作示例
Jul 13 jQuery
js最实用string(字符串)类型的使用及截取与拼接详解
Apr 26 Javascript
微信小程序wx.navigateTo方法里的events参数使用详情及场景
Jan 07 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
PHP UTF8编码内的繁简转换类
2009/07/20 PHP
PHP中图片等比缩放的实例
2013/03/24 PHP
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
2014/09/27 PHP
laravel实现Auth认证,登录、注册后的页面回跳方法
2019/09/30 PHP
DEFER怎么用?
2006/07/01 Javascript
JQuery验证工具类搜集整理
2013/01/16 Javascript
JS字符串截取函数实例
2013/12/27 Javascript
TypeScript 中接口详解
2015/06/19 Javascript
Node.js文件操作方法汇总
2016/03/22 Javascript
Ajax使用原生态JS验证用户名是否存在
2020/05/26 Javascript
ES6新特性之模块Module用法详解
2017/04/01 Javascript
详解JS构造函数中this和return
2017/09/16 Javascript
基于vue实现一个神奇的动态按钮效果
2019/05/15 Javascript
vue实现微信浏览器左上角返回按钮拦截功能
2020/01/18 Javascript
详解关于Vue单元测试的几个坑
2020/04/26 Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
2020/07/18 Javascript
[56:57]LGD vs VP 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第一场 8.20.mp4
2019/08/22 DOTA
举例讲解Python中的迭代器、生成器与列表解析用法
2016/03/20 Python
django+echart绘制曲线图的方法示例
2018/11/26 Python
python多线程实现同时执行两个while循环的操作
2020/05/02 Python
Keras中的多分类损失函数用法categorical_crossentropy
2020/06/11 Python
Python使用Selenium实现淘宝抢单的流程分析
2020/06/23 Python
HTML5 HTMLCollection和NodeList的区别详解
2020/04/29 HTML / CSS
英国在线自行车商店:Evans Cycles
2016/09/26 全球购物
宝拉珍选官方旗舰店:2%水杨酸精华液,收缩毛孔粗大和祛痘
2018/07/01 全球购物
综合实践活动方案
2014/02/14 职场文书
党的群众路线教育实践方案
2014/05/11 职场文书
初中班级口号
2014/06/09 职场文书
天猫活动策划方案
2014/08/21 职场文书
群众路线学习笔记范文
2014/11/06 职场文书
2015年组织部工作总结
2015/04/03 职场文书
单位工资证明范本
2015/06/12 职场文书
催款函范文
2015/06/24 职场文书
禁毒心得体会范文
2016/01/15 职场文书
想要创业,那么你做好准备了吗?
2019/07/01 职场文书
微信小程序中使用vant框架的具体步骤
2022/02/18 Javascript