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 相关文章推荐
js实现iframe动态调整高度的代码
Jan 06 Javascript
jQuery简单实现banner图片切换
Jan 02 Javascript
JavaScript中使用自然对数ln的方法
Jun 14 Javascript
innerHTML中标签可以换行的方法汇总
Aug 14 Javascript
jquery实现滑屏大图定时收缩为小banner图片的广告代码
Sep 02 Javascript
jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
Oct 28 Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
Aug 11 Javascript
轻松掌握JavaScript状态模式
Sep 07 Javascript
用js实现简单算法的实例代码
Sep 24 Javascript
webpack配置之后端渲染详解
Oct 26 Javascript
JS+Canvas绘制动态时钟效果
Nov 10 Javascript
layuiAdmin循环遍历展示商品图片列表的方法
Sep 16 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
Zerg建筑一览
2020/03/14 星际争霸
15种PHP Encoder的比较
2007/03/06 PHP
php中常用的预定义变量小结
2012/05/09 PHP
PHP扩展CURL的用法详解
2014/06/20 PHP
Symfony数据校验方法实例分析
2015/01/26 PHP
PHP实现创建微信自定义菜单的方法示例
2017/07/14 PHP
javascript第一课
2007/02/27 Javascript
js 数组操作代码集锦
2009/04/28 Javascript
Javascript Math对象
2009/08/13 Javascript
详解js中class的多种函数封装方法
2016/01/03 Javascript
深入理解JQuery中的事件与动画
2016/05/18 Javascript
Javascript vue.js表格分页,ajax异步加载数据
2016/10/24 Javascript
React Native验证码倒计时工具类分享
2017/10/24 Javascript
swiper插件自定义切换箭头按钮
2017/12/28 Javascript
微信web端后退强制刷新功能的实现代码
2018/03/04 Javascript
小程序如何使用分包加载的实现方法
2019/05/22 Javascript
Vue form表单动态添加组件实战案例
2019/09/02 Javascript
稍微学一下Vue的数据响应式(Vue2及Vue3区别)
2019/11/21 Javascript
[04:52]DOTA2亚洲邀请赛附加赛 TOP10精彩集锦
2015/01/29 DOTA
itchat接口使用示例
2017/10/23 Python
Python实现简单的语音识别系统
2017/12/13 Python
Python的numpy库中将矩阵转换为列表等函数的方法
2018/04/04 Python
Python 实现输入任意多个数,并计算其平均值的例子
2019/07/16 Python
python 最简单的实现适配器设计模式的示例
2020/06/30 Python
python切割图片的示例
2020/11/12 Python
详解如何在登录过期后跳出Ifram框架
2020/09/10 HTML / CSS
美国最大的半成品净菜电商:Blue Apron(蓝围裙)
2018/04/27 全球购物
三维科技面试题
2013/07/27 面试题
毕业生幼师求职自荐信
2013/10/01 职场文书
音乐学院硕士生的自我评价分享
2013/11/01 职场文书
体育教师个人的自我评价
2014/02/16 职场文书
小学兴趣小组活动总结
2014/07/07 职场文书
三严三实对照检查材料
2014/09/22 职场文书
2015小学五年级班主任工作总结
2015/05/21 职场文书
朝花夕拾读书笔记
2015/06/29 职场文书
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
2022/05/25 SQL Server