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 继承详解(四)
Jul 13 Javascript
控制input输入框中提示信息的显示和隐藏的方法
Feb 12 Javascript
js中通过父级进行查找定位元素
Jun 15 Javascript
jquery实现textarea输入框限制字数的方法
Jan 15 Javascript
jQuery实现3D文字特效的方法
Mar 10 Javascript
微信企业号开发之微信考勤Cookies的使用
Sep 11 Javascript
bootstrap模态框嵌套、tabindex属性、去除阴影的示例代码
Oct 17 Javascript
关于redux-saga中take使用方法详解
Feb 27 Javascript
详解如何从零开始搭建Express+Vue开发环境
Jul 17 Javascript
对类Vue的MVVM前端库的实现代码
Sep 07 Javascript
javascript设计模式 ? 观察者模式原理与用法实例分析
Apr 22 Javascript
vue中echarts的用法及与elementui-select的协同绑定操作
Nov 17 Vue.js
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
ThinkPHP的L方法使用简介
2014/06/18 PHP
CI框架AR操作(数组形式)实现插入多条sql数据的方法
2016/05/18 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
jQuery AnythingSlider滑动效果插件
2010/02/07 Javascript
多选列表框动态添加,移动,删除,全选等操作的简单实例
2014/01/13 Javascript
js实现字符串转日期格式的方法
2015/05/20 Javascript
JavaScript使用RegExp进行正则匹配的方法
2015/07/11 Javascript
前端实现文件的断点续传(前端文件提交+后端PHP文件接收)
2016/11/04 Javascript
使用BootStrap实现悬浮窗口的效果
2016/12/13 Javascript
简单易懂的天气插件(代码分享)
2017/02/04 Javascript
xmlplus组件设计系列之下拉刷新(PullRefresh)(6)
2017/05/03 Javascript
详解React中的组件通信问题
2017/07/31 Javascript
vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造
2018/09/14 Javascript
js中null与空字符串&quot;&quot;的区别讲解
2019/01/17 Javascript
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
2019/05/30 NodeJs
通过实例了解JS执行上下文运行原理
2020/06/17 Javascript
Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前)
2020/09/10 Javascript
[52:06]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python采用getopt解析命令行输入参数实例
2014/09/30 Python
用Python实现一个简单的能够上传下载的HTTP服务器
2015/05/05 Python
python3库numpy数组属性的查看方法
2018/04/17 Python
python实现指定字符串补全空格、前面填充0的方法
2018/11/16 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
2019/07/23 Python
Python3 批量扫描端口的例子
2019/07/25 Python
150行Python代码实现带界面的数独游戏
2020/04/04 Python
基于python 将列表作为参数传入函数时的测试与理解
2020/06/05 Python
keras实现调用自己训练的模型,并去掉全连接层
2020/06/09 Python
css3一款3D字体带阴影效果的实现步骤
2013/03/20 HTML / CSS
长曲棍球装备:Lacrosse Monkey
2020/12/02 全球购物
教师评优的个人自我评价分享
2013/09/19 职场文书
大学竞选班长演讲稿
2014/04/24 职场文书
大学同学会活动方案
2014/08/20 职场文书
幼师自荐信范文
2015/03/06 职场文书
未婚证明格式
2015/06/15 职场文书
交通安全主题班会
2015/08/12 职场文书
怎么禁用Win11输入法 最新Win11输入法关闭教程
2022/08/05 数码科技