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 相关文章推荐
一个挺有意思的Javascript小问题说明
Sep 26 Javascript
js动态调用css属性的小规律及实例说明
Dec 28 Javascript
JavaScript中按位“异或”运算符使用介绍
Mar 14 Javascript
webpack-dev-server自动更新页面方法
Feb 22 Javascript
npm 更改默认全局路径以及国内镜像的方法
May 16 Javascript
JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
Jul 27 Javascript
JavaScript实现页面中录音功能的方法
Jun 04 Javascript
使用JQuery自动完成插件Auto Complete详解
Jun 18 jQuery
利用layer实现表单完美验证的方法
Sep 26 Javascript
解决微信小程序scroll-view组件无横向滚动的问题
Feb 04 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
Jul 22 Javascript
vue 子组件和父组件传值的示例
Sep 11 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
星际争霸教主Flash的ID由来:你永远不会知道他之前的ID是www!
2019/01/18 星际争霸
第九节 绑定 [9]
2006/10/09 PHP
PHP XML error parsing SOAP payload on line 1
2010/06/17 PHP
PHP中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
set_include_path和get_include_path使用及注意事项
2013/02/02 PHP
codeigniter中测试通过的分页类示例
2014/04/17 PHP
php实现的双向队列类实例
2014/09/24 PHP
php获取根域名方法汇总
2014/10/28 PHP
php实现插入数组但不影响原有顺序的方法
2015/03/27 PHP
YII CLinkPager分页类扩展增加显示共多少页
2016/01/29 PHP
php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法
2016/10/12 PHP
PHP培训要多少钱
2017/06/06 PHP
tp5(thinkPHP5)框架实现多数据库查询的方法
2019/01/10 PHP
jQuery开发者都需要知道的5个小技巧
2010/01/08 Javascript
浅谈JavaScript中的对象及Promise对象的实现
2015/11/15 Javascript
Node.js配合node-http-proxy解决本地开发ajax跨域问题
2016/08/31 Javascript
Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题
2017/02/27 Javascript
JS排序之选择排序详解
2017/04/08 Javascript
JavaScrpt中如何使用 cookie 设置查看与删除功能
2017/07/09 Javascript
vue项目中使用bpmn为节点添加颜色的方法
2020/04/30 Javascript
[47:52]DOTA2-DPC中国联赛正赛 iG vs LBZS BO3 第二场 3月4日
2021/03/11 DOTA
python中sleep函数用法实例分析
2015/04/29 Python
python绘制条形图方法代码详解
2017/12/19 Python
Python如何抓取天猫商品详细信息及交易记录
2018/02/23 Python
PyCharm安装第三方库如Requests的图文教程
2018/05/18 Python
Python错误处理操作示例
2018/07/18 Python
Python基础之字符串常见操作经典实例详解
2020/02/26 Python
Python 实现RSA加解密文本文件
2020/12/30 Python
Fanatics法国官网:美国体育电商
2019/08/27 全球购物
班班通项目实施方案
2014/02/25 职场文书
大学生找工作求职信
2014/07/09 职场文书
2014年部门工作总结
2014/11/12 职场文书
教师考核表个人总结
2015/02/12 职场文书
培训通知书模板
2015/04/17 职场文书
pandas求平均数和中位数的方法实例
2021/08/04 Python
python中的sys模块和os模块
2022/03/20 Python