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实现网页多级级联菜单代码
Aug 20 Javascript
JS实现自动定时切换的简洁网页选项卡效果
Oct 13 Javascript
基于Bootstrap重置输入框内容按钮插件
May 12 Javascript
JS实现的自定义水平滚动字体插件完整实例
Jun 17 Javascript
在vue-cli脚手架中配置一个vue-router前端路由
Jul 03 Javascript
JS兼容所有浏览器的DOMContentLoaded事件
Jan 12 Javascript
解决angularJS中input标签的ng-change事件无效问题
Sep 13 Javascript
Vue源码探究之状态初始化
Nov 14 Javascript
Vue infinite update loop的问题解决
Apr 23 Javascript
微信小程序渲染性能调优小结
Jul 30 Javascript
详解mpvue开发微信小程序基础知识
Sep 23 Javascript
JavaScript中的LHS和RHS分析详情
Apr 06 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实现简单实用的验证码类
2015/07/29 PHP
php中namespace及use用法分析
2016/12/06 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
javascript各种复制代码收集
2008/09/20 Javascript
javascript+iframe 实现无刷新载入整页的代码
2010/03/17 Javascript
Javascript公共脚本库系列(一): 弹出层脚本
2011/02/24 Javascript
一个级联菜单代码学习及removeClass与addClass的应用
2013/01/24 Javascript
JS拖拽插件实现步骤
2015/08/03 Javascript
Bootstrap布局方式详解
2016/05/27 Javascript
Javascript中document.referrer隐藏来源的方法
2017/01/16 Javascript
JS实现浏览器打印、打印预览示例
2017/02/28 Javascript
Angular指令之restict匹配模式的详解
2017/07/27 Javascript
动态Axios的配置步骤详解
2018/01/12 Javascript
vue slot与传参实例代码讲解
2019/04/28 Javascript
JavaScript面向对象程序设计中对象的定义和继承详解
2019/07/29 Javascript
阿望教你用vue写扫雷小游戏
2020/01/20 Javascript
python实现批量获取指定文件夹下的所有文件的厂商信息
2014/09/28 Python
剖析Python的Tornado框架中session支持的实现代码
2015/08/21 Python
python实现给微信公众号发送消息的方法
2017/06/30 Python
Python实现的中国剩余定理算法示例
2017/08/05 Python
如何在VSCode上轻松舒适的配置Python的方法步骤
2019/10/28 Python
pyqt5数据库使用详细教程(打包解决方案)
2020/03/25 Python
美国知名女性服饰品牌:New York & Company
2017/03/23 全球购物
adidas菲律宾官网:adidas PH
2020/02/07 全球购物
北京一家公司的.net开发工程师笔试题
2012/04/17 面试题
Java中会存在内存泄漏吗,请简单描述
2016/12/22 面试题
车间调度岗位职责
2013/11/30 职场文书
蟋蟀的住宅教学反思
2014/04/26 职场文书
初中家长评语和期望
2014/12/26 职场文书
美术教师个人工作总结
2015/02/06 职场文书
假如给我三天光明读书笔记
2015/06/26 职场文书
2016公司年会主持词
2015/07/01 职场文书
教你怎么用Python监控愉客行车程
2021/04/29 Python
Django显示可视化图表的实践
2021/05/10 Python
python中的mysql数据库LIKE操作符详解
2021/07/01 MySQL
在Python 中将类对象序列化为JSON
2022/04/06 Python