利用js的Highcharts图表库框架开发任务管理器动态交互式图表(包括曲线图和柱状图)

highcharts动态获取数据生成柱状图    使用Highcharts控件实现柱状图,前端显示主要使用Highchartst图表库,后端使用SpringMVC框架从数据库获取数据,前后端数据交互采用Json数据格式,由于篇幅问题数据库代码就不提供了。主要代码如下:   1. 在页面头部引用Hightcharts文件 阅读详情

利用js的Highcharts图表库框架开发任务管理器动态交互式图表(包括曲线图和柱状图)WEB—HTML5页面显示

HignCharts介绍

Highcharts 是一个用纯 JavaScript 编写的一个图表库, 能够很简单便捷的在 Web 网站或是 Web 应用程序添加有交互性的图表,并且免费提供给个人学习、个人网站和非商业用途使用。

Highcharts 支持的图表类型有直线图、曲线图、区域图、柱状图、饼状图、散状点图、仪表图、气泡图、瀑布流图等多达 20 种图表,其中很多图表可以集成在同一个图形中形成混合图。
大部分的图表类型 在HignCharts中都有所包含
官网跳转:https://www.highcharts.com.cn/demo/highcharts
详细的API和使用方法可参考官网的相关内容

动态交互图

官网API文档中的动态交互图只有线图中的折线点图:

  1. 实时刷新的曲线图 ,将会带来全新的写作体验

  2. 在这里插入图片描述

  3. 基本动态交互图的js源码:

Highcharts.setOptions({
	global: {
		useUTC: false
	}
});
function activeLastPointToolip(chart) {
	var points = chart.series[0].points;
	chart.tooltip.refresh(points[points.length -1]);
}
var chart = Highcharts.chart('container', {
	chart: {
		type: 'spline',
		marginRight: 10,
		events: {
			load: function () {
				var series = this.series[0],
					chart = this;
				activeLastPointToolip(chart);
				setInterval(function () {
					var x = (new Date()).getTime(), // 当前时间
						y = Math.random();          // 随机值
					series.addPoint([x, y], true, true);
					activeLastPointToolip(chart);
				}, 1000);
			}
		}
	},
	title: {
		text: '动态模拟实时数据'
	},
	xAxis: {
		type: 'datetime',
		tickPixelInterval: 150
	},
	yAxis: {
		title: {
			text: null
		}
	},
	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
	},
	series: [{
		name: '随机数据',
		data: (function () {
			// 生成随机值
			var data = [],
				time = (new Date()).getTime(),
				i;
			for (i = -19; i <= 0; i += 1) {
				data.push({
					x: time + i * 1000,
					y: Math.random()
				});
			}
			return data;
		}())
	}]
});;

仿照windows任务管理器taskManager

在这里插入图片描述
主要开发的是操作系统性能相关的页面。主要包括Cpu任务的占用率,中断数量,丢失数量,响应数量,以及几个中断任务的内存分配和占用。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

源码

container容器

<style type="text/css">
			#container {
				mid-width: 400px;
				mid-height: 400px;
				margin: 0 auto;
			}

			#container1 {
				mid-width: 400px;
				mid-height: 400px;
				margin: 0 auto;
			}

			#container2 {
				mid-width: 400px;
				mid-height: 400px;
				margin: 0 auto;
			}

			#container3 {
				mid-width: 400px;
				mid-height: 400px;
				margin: 0 auto;
			}

			#container4 {
				mid-width: 400px;
				mid-height: 400px;
				margin: 0 auto;
			}
		</style>

需js文件声明
commonTools.js文件中有需要访问服务器上的json文件

		<script src="js/jquery-3.3.1.min.js"></script>
		<script src="js/taskManager_01.js"></script>
		<script src="js/highcharts.js"></script>
		<script src="js/exporting.js"></script>
		<script src="js/export-data.js"></script>
		<script src="js/themes/dark-unica.js"></script>
		<script src="js/commonTools.js"></script>

部分服务器端上的操作系统相关数据current.json文件
这是我的折线图和柱状图的源数据,是直接处理的json数据。
我们知道 Highcharts 的配置本身就是 JSON,所以 JSON 数据无需解析,只需要转换成需要的格式即可,下面是简单的示例说明:
读取 JSON 并创建图表
$(document).ready(function() {
var options = {
chart: {
type: ‘spline’
},
series: [{}]
};
$.getJSON(‘data.json’, function(data) {
options.series[0].data = data;
var chart = Highcharts.chart(‘container’, options);
});
});

"icInfo":{
	"masks":"4294967295",
	"gEnable":"1",
	"intAdded":"5667",
	"intLoss":"0",
	"intHandled":"5667",
	"stubs":[
		{   "id":"0","stub":"01f80000","cpuMask":"0","cpuID":"-1",
		   "intAdded":"1416","intLoss":"0","intHandled":"1416"},
		{   "id":"10","stub":"01f80040","cpuMask":"0","cpuID":"-1",
		   "intAdded":"1417","intLoss":"0","intHandled":"1417"},
		{   "id":"11","stub":"01f80080","cpuMask":"0","cpuID":"-1",
		   "intAdded":"1417","intLoss":"0","intHandled":"1417"},
		{   "id":"12","stub":"01f800c0","cpuMask":"0","cpuID":"-1",
		   "intAdded":"1417","intLoss":"0","intHandled":"1417"}]},
"hptInfo":{
	"start":"1715849123594",
	"current":"28334895",
	"rate":"1000000"},
"rtcInfo":{
	"nTick":"1416",
	"nCounter":"0",
	"counters":[]},
"nicInfo":[
	{
		"sendPkg":"0",
		"sendByte":"0",
		"sendErr":"0",
		"recvPkg":"0",
		"recvByte":"0",
		"recvErr":"0"},
	{
		"sendPkg":"23628",
		"sendByte":"1332224864",
		"sendErr":"113",
		"recvPkg":"30730",
		"recvByte":"2412766687",
		"recvErr":"219"},
	{
		"sendPkg":"26014",
		"sendByte":"1881765071",
		"sendErr":"160",
		"recvPkg":"32904",
		"recvByte":"1615629513",
		"recvErr":"19"},
	{
		"sendPkg":"29870",
		"sendByte":"1399598791",
		"sendErr":"137",
		"recvPkg":"28287",
		"recvByte":"2180040229",
		"recvErr":"192"},
	{
		"sendPkg":"22545",
		"sendByte":"1382468139",
		"sendErr":"61",
		"recvPkg":"27184",
		"recvByte":"1790326503",
		"recvErr":"143"}],

一个板块的数据折线图
主要是events中的function series数据列的x,y点值的赋值
以及series对象中的data.push();
基本动态图的动态效果都是通过定时器setInterval()实现
所以只需画点即可,柱状图也相同。

//折线图
	<div id="graphics1_cpu" class="graphics elected" style="background-color: azure">
							<div id="container"></div>
							<div id="chart"></div>
							<script type="text/javascript">
								Highcharts.chart('container', {
									chart: {
										type: 'spline',
										animation: Highcharts.svg, // don't animate in old IE
										marginRight: 10,
										events: {
											load: function() {
												var series = this.series[0];
												setInterval(function() {
													var x = (new Date()).getTime(), // current time
														y = task0Rate;
													series.addPoint([x, y], true, true);
												}, 1000);
											}
										}
									},

									time: {
										useUTC: false
									},

									title: {
										text: '任务0占用率'
									},
									xAxis: {
										type: 'datetime',
										// categories:['中断数量','中断响应数量','中断丢失数量'],
										tickPixelInterval: 150
									},
									yAxis: {
										title: {
											text: '占用率'
										},
										plotLines: [{
											value: 0,
											width: 1,
											color: '#808080'
										}]
									},
									tooltip: {
										headerFormat: '<b>{series.name}</b><br/>',
										pointFormat: '{point.x:%Y-%m-%d %H:%M:%S}<br/>{point.y:.2f}'
									},
									legend: {
										enabled: false
									},
									exporting: {
										enabled: false
									},
									plotLines: {
										enabled: false
									},
									series: [{
										name: '任务0占用率曲线',
										data: (function() {
											// generate an array of random data
											var data = [],
												time = (new Date()).getTime(),
												i;

											for (i = -19; i <= 0; i += 1) {
												data.push({
													x: time + i * 1000,
													y: null
												});
											}
											return data;
										}())
									}]
								});
							</script>
						</div>
//柱状图
Highcharts.chart('container8', {
									chart: {
										type: 'column',
										animation: Highcharts.svg, // don't animate in old IE
										marginRight: 10, //右边距
										events: {
											load: function() {
												// set up the updating of the chart each second
												var series1 = this.series[0];
												var series2 = this.series[1];
												setInterval(function() {
													var x = (new Date()).getTime(), // current time
														y1 = maxTask1Alloc,
														y2 = curTaks1Alloc
													series1.addPoint([x, y1], true, true);
													series2.addPoint([x, y2], true, true);
												}, 1000);
											}
										}
									},

									time: {
										useUTC: false
									},

									title: {
										text: 'Taks1-最大分配内存容量和当前占用内存容量',
									},

									subtitle: {
										text: 'FreeRTOS Monitor'
									},
									xAxis: {
										type: 'datetime',
										// categories:['中断数量','中断响应数量','中断丢失数量'],
										tickPixelInterval: 100
									},
									yAxis: {
										title: {
											text: '内存容量'
										},
										plotLines: [{
											value: 0,
											width: 1,
											color: '#808080'
										}]
									},
									tooltip: {
										headerFormat: '<b>{series.name}</b><br/>',
										pointFormat: '{point.x:%Y-%m-%d %H:%M:%S}<br/>{point.y:.2f}'
									},
									legend: {
										enabled: false
									},
									exporting: {
										enabled: false
									},
									plotLines: {
										enabled: false
									},
									series: [{
										type: 'column',
										name: '最大分配内存容量',
										data: (
											function() {
												var data = [],
													time = (new Date()).getTime(),
													i;
												for (i = -19; i <= 0; i += 1) {
													data.push({
														x: time + i * 1000,
														y: null
													});
												}
												return data;
											}())
									}, {
										type: 'column',
										name: '当前分配内存容量',
										data: (function() {
											var data = [],
												time = (new Date()).getTime(),
												i;
											for (i = -19; i <= 0; i += 1) {
												data.push({
													x: time + i * 1000,
													y: null
												});
											}
											return data;
										}())
									}]
								});
顺式元件热图+柱状图 启动子是DNA序列,可以被RNA 聚合酶识别、与其结合从而开始转录,它含有RNA 聚合酶特异性结合和转录起始所需的保守序列,多数位于结构基因转录起始点的上游,启动子本身不被转录。启动子的特性最初是通过能增加或降低基因转录速率的突变而鉴定的。登录网站:(http://bioinformatics.psb.ugent.be/webtools/plantcare/html/),提交提取的启动子序列和邮箱号,预测结束后会将结果(plantCARE_output_PlantCARE_*.tab文件)发至邮箱。 阅读详情

相关推荐

3、柱状图和热图

在本教程中,您将学习柱状图和热图。使用颜色或长度来比较数据集中的类别

AI算法蒋同学的博客 1260

Highcharts使用指南

摘要 Highcharts图表控件是目前使用最为广泛的图表控件。本文将从零开始逐步为你介绍Highcharts图表控件。通过本文,你将学会如何配置Highcharts以及动态生成Highchart图表。   目录 前言(Preface) 安装(Installation) 如何设置参数(How to set up the options) 预处理参数(Preprocess th...

weixin_34037515的博客 1117

使用Tableau绘制柱形图

**柱形图是我们制作报表中几乎必不可少的图表,通过不同的柱子,代表不同的分类,柱子的高低代表着分类数据的大小,直观的展现分类间的对比。** 笔者认为,就数据实用性而言,柱形图是最能突出 对比 这一分析方法的图形。 下面我们介绍几种在Tableau中常用的柱形图,实际上这些不同的柱形图,不管在哪个工具里,都是数据从业者中意的图形之一。 本文使用的数据源仍为Tableau自带的示例-超市 数据 假设我们想看不同 子类别商品的销售额对比 一、简单柱形图、条形图 实现步骤: 1、将子类别拖到行,销售额拖到列。.

adbandon的博客 7124

JAVASCRIPT创建动态曲线图和图表(Dojo)

随着 Web 2.0 的日益流行,web 开发库(比如 Dojo 和 jQuery)正在变得越来越重要。web 页面变得越来越像应用程序。使用 Dojo 的制图模块,您可以快速轻松地将外观美观、功能强大的动态图表和曲线图添加到您的 web 页面。 在本文中,了解如何使用 dojox.charting 模块的许多特性。示例和代码样例将详细展示新的 Dojo Toolkit 1.5 中的制图特性

单向街的夏天 3703

Linux内核4.14版本——drm框架分析(1)——drm简介

drm框架分析

yangguoyu8023的博客 1万+

【Python爬虫案例教学】超简洁代码采集原神所有角色信息

(。・∀・)ノ゙嗨 大家好,这里是池鱼

xiaoyuan_____的博客 2421

这图怎么画| 相关性热图+柱状图

heatmap_barplot写在前面【这图怎么画】系列的图都来自VIP群里同学的提问。推文只是对图片的复现,不代表作者对图片展现形式的认同。欢迎同学们在群里分析有意思的图片。本期图片 ❝Title:Nitrogen stabilizers mitigate nitrous oxide emissions across maize production areas of China: A mul...

weixin_45822007的博客 2583

点云最小二乘法拟合曲线

文章目录一、引言 一、引言

dayuhaitang1的博客 2735

highchart的基本使用和部分美化

highchart的基本使用 使用highchart之前需要下载highchart的js 可以去官网看看并下载: https://www.highcharts.com.cn/demo/highcharts/spline-symbols 我直接选的下面这种方式 然后在需要 highchart 的地方进行导入 <script src="http://cdn.highcharts.com.cn/highcharts/10.0.0/highcharts.js"></script> 然

qq_48082548的博客 592

改进后的yolov8导出进行部署到rk3588上时,导出为onnx格式报错aten::fft_fft2算子不支持导出...如何解决?

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 备注:部分问题/疑难杂症搜集于互联网。

**My Coding Family** 1799

使用Prophet进行时间序列预测

Prophet是Facebook开发的开源时间序列预测工具,用于处理时间序列数据的建模和预测。它建立在统计模型之上,适用于多种时间序列预测问题,具有易用性和灵活性。能够处理缺失值和异常值支持对节假日和季节性的建模可以灵活地添加自定义的季节性成分自动检测变化点提供了直观的可视化工具这个简短的教程为您提供了使用Prophet进行时间序列预测的基本步骤和一些重要的概念。您可以通过阅读Prophet官方文档和其他在线资源来进一步深入学习和了解更多细节。

Mrrunsen的博客 480

SaaS大型医院云LIS系统源码 集齐前处理、检验、报告、质控、统计分析、两癌等模块

云LIS系统源码 SaaS服务 三甲医院云LIS系统源码本套云LIS系统基于B/S架构的实验室管理系统,整个系统的运行基于WEB层面,只需要在对应的工作台安装一个浏览器软件有外网即可访问。SaaS服务,无需部署,开通账号接口快速入门使用,集齐前处理、检验、报告、质控、统计分析、两癌等模块。云LIS系统是医院信息管理的重要组成部分之一,集申请、采样、核收、计费、检验、审核、发布、质控、查询、耗材控制、两癌筛查等检验科工作为一体的网络管理系统。

高端源码平台 665

51智能小车(双轮)

前几天接了个小单子,是一个基于51单品机的作品,发现自己对小车的认识还是不太🆗。也算是完成了任了的;欢迎各位小伙伴来多多交流,大家一起进步。最后有需要单片机课程设计的小伙伴滴滴我哦(有偿)。企鹅:2397746994。

qq_56992543的博客 2348

28个数据可视化图表的总结和介绍

这篇文章有点长,但我完全相信它会对你有很大的帮助。我在本文中整理了基本上所有的图表概述。这将是一篇关于数据可视化的完整文章,尤其是展示了地理位置可视化的一些方法,希望这篇文章对你有所帮助。作者 Md. Zubair。

deephub 5658

【电路设计】SERDES与pcie

明确通信接口需要达到什么样的数据速率、信号完整性以及系统中各个部件的互相作用。2.

数字人生 4567

Python爬虫实战:如何通过解析JSON数据抓取抖音视频评论

本文介绍了如何使用Python爬虫抓取抖音视频评论数据。请求头伪造:通过使用随机的User-Agent,模拟真实用户的请求。代理池:使用代理IP来避免被封禁。JSON解析:直接从API接口获取JSON格式的数据,避免了动态加载内容的限制。需要注意的是,抓取网站数据时应遵守网站的爬虫协议,避免过度抓取影响网站性能或违反法律法规。希望本文能够帮助你掌握如何抓取和分析抖音视频评论数据!

2201_76125261的博客 3362

28个帮助你练习HTML CSS Javascript 的UI Page项目

英文 |https://niemvuilaptrinh.medium.com/29-projects-to-help-you-practice-html-css-javascript-d...

web前端开发 842

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Php使用highcharts,highcharts PHP中使用

官网https://www.hcharts.cn/demo/highchartshtmljsHighcharts.chart('container', {chart: {plotBackgroundColor: null,plotBorderWidth: null,plotShadow: false,type: 'pie'},title: {text: '2018年1月浏览器市场份额'},tool...

weixin_36261424的博客 371

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

10个实用的数据可视化的图表总结

数据可视化是数据科学中不可缺少的一部分。在数据科学中,我们与数据打交道。手工分析少量数据是可以的,但当我们处理数千个数据时它就变得非常麻烦。如果我们不能发现数据集的趋势和洞察力,我们可能无法使用这些数据。希望上面介绍的的图可以帮助你深入了解数据。作者:Md. Zubair。

deephub 1万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

HighCharts结构及详细配置(中文对比)

HighCharts结构及详细配置(中文对比翻译)

AndyWangWangWang的博客 1895

iheatmapr包:可交互的热图绘制方法

iheatmapr包在R中有许多用于绘制热图的包,今天介绍一个比较有意思的用于绘制热图的包,iheatmapr 包,这个包是用来绘制复杂的、且具有交互作用的热图。用iheatmapr包绘...

悟道西方 2407

html简单的任务管理系统实现,用Javascript实现Windows任务管理器的代码

很多人一提到JS可能就会想到网页,其实JS同样可以拥有主动权,做一些其他语言能做到的事情,甚至可以反过来去主宰浏览器,而不是被浏览器主宰着。这篇文章将介绍一个建立在WSH平台上,通过JS实现的真正可用的Windows任务管理器。一:代码及注释/*JS任务管理器By:X!ao_fMail:Xiao_f.mail@163.comQQ:120000512*///建立对象Shell对象,该对象提供了弹出提...

weixin_34794420的博客 1273

跟着Nature Communications学作图 -- 复杂热图+堆积柱状图注释

❝已经付费加群的小伙伴无需二次付费,等待师兄后续更新即可!❞封面从这个系列开始,师兄就带着大家从各大顶级期刊中的Figuer入手,从仿照别人的作图风格到最后实现自己游刃有余的套用在自己的分析数据上!这一系列绝对是高质量!还不赶紧「点赞+在看」,学起来!❝本期分享的是期刊:「Nature Communication」上面一篇文章中的一个「复杂热图+堆积柱状图」!本系列所有代码和示例数据将会和生信常用...

weixin_45822007的博客 6946

html模仿苹果电脑任务栏菜单

效果很炫,滑动超流畅! 完整源码:http://yuncode.net/code/c_5055d5cc4879382 保存为html即可       核心代码: 19 window.onload = function () 20 { 21 var oMenu = document.getElementById("menu"); 2

源码 - http://yuncode.net/guojianfeng 1551

动态曲线图表插件 html,JS highcharts实现动态曲线代码示例

Highcharts是一个制作图表的纯Javascript类库,主要特性如下:兼容性:兼容当今所有的浏览器,包括iPhone、IE和火狐等等;对个人用户完全免费;纯JS,无BS;支持大部分的图表类型:直线图,曲线图、区域图、区域曲线图、柱状图、饼装图、散布图;跨语言:不管是PHP、.net还是Java都可以使用,它只需要三个文件:一个是Highcharts的核心文件highcharts.js,还有...

weixin_39693101的博客 639

盘点五大热门JavaScript图表库,助你高效开发!

D3.js(Data-Driven Documents)是一个非常强大的数据可视化库,它允许你通过操纵DOM来绑定任意数据到文档,并使用SVG、Canvas和HTML将数据转换为图表。ECharts 是由百度开源的一个使用 JavaScript 实现的开源可视化库,支持丰富的图表类型,并提供了一套非常完善的图表工具库,包括直角坐标系、极坐标系、地理坐标系等。它支持多种图表类型,并且免费用于非商业用途。这些图表库各有特点,你可以根据自己的项目需求、技术栈偏好以及对图表定制程度的要求来选择合适的图表库。

Jiaberrr的博客 2683
下一篇: 基于Google的Android平台上GVR 3D全景视频播放器(支持本地文件和视频流传输)
我们来唱人生海海
博客等级 码龄8年 2粉丝 4原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值