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 相关文章推荐
jQuery EasyUI 开源插件套装 完全替代ExtJS
Mar 24 Javascript
jquery 查找iframe父级页面元素的实现代码
Aug 28 Javascript
jQuery之end()和pushStack()使用介绍
Feb 07 Javascript
JQuery制作的放大效果的popup对话框(未添加任何jquery plugin)分享
Apr 28 Javascript
JQuery选择器绑定事件及修改内容的方法
Jan 23 Javascript
JS实现控制表格行文本对齐的方法
Mar 30 Javascript
JavaScript中的Math.LOG2E属性使用详解
Jun 14 Javascript
jQuery实现文件上传进度条特效
Aug 12 Javascript
jQuery复制表单元素附源码分享效果演示
Sep 30 Javascript
Javascript 函数的四种调用模式
Nov 05 Javascript
Angularjs自定义指令实现分页插件(DEMO)
Sep 16 Javascript
我要点爆”微信小程序云开发之项目建立与我的页面功能实现
May 26 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中实现图片的锐化
2006/10/09 PHP
PHP 选项及相关信息函数库
2006/12/04 PHP
IIS环境下快速安装、配置和调试PHP5.2.0
2006/12/17 PHP
php二维数组转成字符串示例
2014/02/17 PHP
php自定义urlencode,urldecode函数实例
2015/03/24 PHP
PHP5.6读写excel表格文件操作示例
2019/02/26 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
ASP 过滤数组重复数据函数(加强版)
2010/05/31 Javascript
ymPrompt的doHandler方法来实现获取子窗口返回值的方法
2010/06/25 Javascript
IE浏览器不支持getElementsByClassName的解决方法
2014/08/27 Javascript
NodeJs基本语法和类型
2015/02/13 NodeJs
javascript中使用正则表达式清理table样式的代码
2020/04/01 Javascript
基于JavaScript实现瀑布流效果(循环渐近)
2016/01/27 Javascript
浅谈js多维数组和hash数组定义和使用
2016/07/27 Javascript
移动端利用H5实现压缩图片上传功能
2017/03/29 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
2018/05/04 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
2019/07/20 Javascript
Vue项目中使用better-scroll实现菜单映射功能方法
2019/09/11 Javascript
JS forEach跳出循环2种实现方法
2020/06/24 Javascript
javascript解析json格式的数据方法详解
2020/08/07 Javascript
[48:48]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Dream TIME
2014/05/21 DOTA
实例讲解Python中函数的调用与定义
2016/03/14 Python
python自定义时钟类、定时任务类
2021/02/22 Python
django项目简单调取百度翻译接口的方法
2019/08/06 Python
Pandas的数据过滤实现
2021/01/15 Python
Sephora丝芙兰马来西亚官方网站:国际化妆品购物
2018/03/15 全球购物
采购部主管岗位职责
2014/01/01 职场文书
学习十八大报告感言
2014/02/28 职场文书
群众路线教育实践活动心得体会
2014/03/07 职场文书
英语课前三分钟演讲稿(6篇)
2014/09/13 职场文书
思想作风建设心得体会
2014/10/22 职场文书
漂亮妈妈观后感
2015/06/08 职场文书
职工食堂管理制度
2015/08/06 职场文书
Go语言设计模式之结构型模式
2021/06/22 Golang
船舶调度指挥系统——助力智慧海事
2022/02/18 无线电
Tomcat用户管理的优化配置详解
2022/03/31 Servers