使用HighCharts实现实时数据展示

时间:2023-01-06 21:02:30

在众多的工业控制系统领域常常会实时采集现场的温度、压力、扭矩等数据,这些数据对于监控人员进行现场态势感知、进行未来趋势预测具有重大指导价值。工程控制人员如果只是阅读海量的数据报表,对于现场整个态势的掌控会十分困难,因此往往希望借助一些图表进行展示,其中趋势图是常用的实时数据展示方式之一。目前实现趋势图、曲线图的工具很多也很成熟,一些是通过CS模式开发的,需要在工程控制人员操作的计算机上安装相应软件,这种方式有其特有的优势,但是有时也有不方便的地方。于是一些基于BS模式的展现方式就自然而然的被广泛应用起来。采用BS模式的展现方式工程控制人员可以通过任何一台可以连接Web服务器的PC,通过常用的浏览器就可以实时的查看当前环境现场的各种指标参数,其便利性是显而易见的。下面我就介绍一下这种BS模式的实时数据展现曲线图的方法。由于本文的目的不是去实现一个现场环境可用的应用产品,因此只是针对涉及的技术进行讲解,起一个指导作用,因此参考者请依据自己项目的实际需要对本文章涉及的代码进行优化使用。
      在通过BS系统实现趋势图、曲线图的可选方案很多,本文主要通过Highcharts.com旗下的Highcharts API包来实现。由于此包是通过JS脚本实现的,因此个人认为相对来说适应面可能更好,当然通过诸如jFreeChart这类工具也是可以实现的。
      言归正传,我们来讲解如何通过Highcharts API实现趋势图在页面上的呈现。
      首先我们需要简单规划一下我们系统的架构。由于实现实时数据的趋势图呈现,因此系统大致我们可以设计成三层:显示层、逻辑层、数据源。如下图所示:

aaarticlea/png;base64,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" alt="" />

显示层就是将数据呈现给工程控制人员的的展示页面,这层主要由JSP、JS、CSS等文件构成,工程控制人员通过浏览器(诸如IE、火狐等)就能直接看到希望的曲线图。显示层只负责显示,而显示需要的数据是经过一定清洗、规格化的,显示层拿到符合规格化要求的数据后,就可以直接进行显示,并响应和人的交互。数据的清洗、规格化工作都是在逻辑层中实现,逻辑层通过获取的数据源信息,进行必要的数据逻辑转换、数据清洗、数据规格化处理。数据源是一个复杂的重要的,它可以是直接来自下位机的数据通讯,也可以是下位机将数据存储在中间数据库中,也可以是一系列的数据文件。
      在本文中只是模拟数据源,并不是实现数据源的读取。并且对应逻辑层的处理,也进行了忽略,这部分内容因为涉及具体的数据获取、清洗、转换、规格化,和具体工程项目的需求有较大关系,加之也不是本文规划的中心,因此此部分代码设计实现本文也不涉及。
      显示层的实现涉及到JSON、JQuery、Highcharts,我们首先建立一个标准的Web应用(其实如果作为例子,使用一个html文件也行,此处本人计划后期会扩展本案例,实现后续一些诸如逻辑层的功能,因此建立了一个Web应用工程,有点画蛇添足,还请见谅)。本人采用Netbeans IDE 7.2版本开发(如何用Netbeans IDE开发Web应用请参考本人其它文章),因此建立完成后的工程结构如下:

aaarticlea/png;base64,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" alt="" />

要使用Highcharts,我们需要导入highcharts.js文件。highcharts.js文件可以从Highcharts官网获得(官网地址:http://www.highcharts.com/),从官网下载的压缩文件中包含有我们开发需要的highcharts.js文件外,还包含一些其它的文件,诸如例子文件等。
      Highcharts是使用js来实现的,同时应用到了JQuery技术,因此还需要去获得最新版的JQuery包(官网地址:http://jquery.com/)。
      以上两块准备好后,我们将其加入新建的工程中,在工程文件中我们规划了一个放置所有js文件的地方,有一个js目录,将highcharts.js、jquery-1.8.3.min.js文件都放置到此目录下。大家看到我的工程中在js目录下有一个modules子目录,此子目录下放置的exporting.js文件是可有可无的,如果大家要使用将图表导出等功能就需要使用此文件,因此需要导入工程中,否则完全可以不需要。
     工程环境准备停当,我们就可以打开本工程的默认,也是唯一的一个jsp页面,对此页面做一个编写修改。主要修改有如下几个地方:
     第一,在jsp页面头部引入highcharts.js、jquery-1.8.3.min.js文件,应用代码参考如下:

<scripttype="text/javascript"src="http://zhaowenbinmail.blog.163.com/blog/js/jquery-1.8.3.min.js"></script>

<scriptsrc="http://zhaowenbinmail.blog.163.com/blog/js/highcharts.js"></script>

第二,在jsp页面的Body体中加入一个div元素,highcharts将在这个div元素中绘制曲线图。

<divid="container"style="min-width:100px; height:400px; margin:0auto"></div>

注意:我们为这个div指定了一个id值,这个id值将来对我们很有用,它是使highcharts知道在何处绘制图表的根源。
     第三,我们需要在jsp页面中加入我们自己的js文件。这个文件用来实现特定的业务呈现逻辑。

<scripttype="text/javascript"src="http://zhaowenbinmail.blog.163.com/blog/js/chart.js"></script>

现在我来讲解一下我需要实现的业务的大体需求。我需要在页面上显示大桥表面一天24小时的温度变化情况(当然这些温度值的变化本案例中都是通过随机数来产生的)。在我们的很轴方向上需要显示从0点开始到晚上23点的时间刻度,并且要求固定就显示0到23这24个刻度,在纵轴方向显示桥面传感器检测到的本小时内温度最大值,然后模拟时间推移显示每小时的温度变化曲线图。
     依据以上需求分析,在页面呈现时,我们就要去读取本天从0点开始到当前时刻的数据,并将数据绘制显示成曲线图。因此我们接下来就要编辑我们自己的js文件——chart.js。在此文件中创建Highcharts对象,通过设置相关的属性来影响曲线图的呈现,使其满足我们的需求要求。
     我们首先定义一个全局的图表对象,我们命名为chart,同时示例化Highcharts对象,具体见下面代码:

var chart;

$(function(){
$(document).ready(function(){
chart =newHighcharts.Chart({
chart:{
renderTo:'container',
type:'line',
marginRight:130,
marginBottom:80,
events:{
load:loadTime
}
},
title:{
text:'大桥采集数据',
x:-20
},
subtitle:{
text:'传感器编号: 传感器1',
x:-20
},
xAxis:{
title:{
enabled:true,
text:'时间(小时)'
},
max:23,
min:0,
tickPixelInterval:50
},
yAxis:{
title:{
text:'压力 (℃)'
},
plotLines:[{
value:0,
width:1,
color:'#808080'
}]
},
tooltip:{
formatter:function(){
return'<b>'+this.series.name +'</b><br/>'+
this.x +': '+this.y +'℃';
}
},
legend:{
x:-50,
y:10,
enabled:true
},
exporting:{
enabled:false
},
plotOptions:{
line:{
gapSize:100
}
},
series:[{
name:'最大值',
data: getFirstData()
}]
});
});

});

在上面代码中我们实例化了一个Highcharts对象,并指定了此对象一些属性。在定义中我们可以看到如下代码:

     chart:{
renderTo:'container',
type:'line',
marginRight:130,
marginBottom:80,
events:{
load:loadTime
}
}

在这段代码中就知道了图表需要绘制到的div元素,注意看上面红色字体部分。这个地方的container就是jsp页面上div的id值(大家可以回过去查看一下我前面的代码)。
      其后指定了这个图表的类型(见上面代码中蓝色字体部分)。这里指定的Line类型,这就会绘制成曲线。
      代码中还指定了图表的事件,目前只指定了一个load事件,在图表装载时将会调用执行load时间对应的函数。代码后面的loadTime是我编写的一个js函数,这个函数后面介绍。
      通过title、subtitle指定图表的标题、子标题,见下面代码:

     title:{
text:'大桥采集数据',
x:-20
},
subtitle:{
text:'传感器编号: 传感器1',
x:-20
},

通过改变这里的设置可以影响图表上显示的效果,显示效果如下图红框选中部分内容。
aaarticlea/png;base64,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" alt="" />
      通过xAxis、yAxis设定图表中横坐标、纵坐标的属性。

      xAxis:{
title:{
enabled:true,
text:'时间(小时)'
},
max:23,
min:0,
tickPixelInterval:50
},
yAxis:{
title:{
text:'压力 (℃)'
},
plotLines:[{
value:0,
width:1,
color:'#808080'
}]
},

通过在xAxis、yAxis中设置title属性控制横坐标、纵坐标上的文字描述显示。
       在横坐标中有时我们是需要指定坐标上每个坐标点需要显示的文字内容的,这时我们需要使用到一个categories属性,通过将一个数组值传给categories属性,这样在横坐标上的每个坐标点就会按照指定的属性内容显示坐标点信息。为了实现如上目的,我们需要再设置一个变量,并将这个变量赋予categories属性。详见下:

var x_arr=['0:00','1:00','2:00','3:00','4:00','5:00',
'6:00','7:00','8:00','9:00','10:00','11:00',
'12:00','13:00','14:00','15:00','16:00','17:00',
'18:00','19:00','20:00','21:00','22:00','23:00'];

通过上面代码段我们定义了一个变量,然后看看如何指定到chart对象中,请注意如下代码端中红色部门,就是较前面代码端增加的地方:

xAxis:{
title:{
enabled:true,
text:'时间(小时)'
},
categories:x_arr,
max:23,
min:0,
tickPixelInterval:50
},

现在页面上显示的图表效果如下图所示:
aaarticlea/png;base64,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" alt="" />
        横坐标上就是按照我们在x_arr变量中设定的内容显示的。如果设定的内容少于横坐标的坐标点,则前面的坐标点将按x_arr变量中设定内容显示,后面的坐标点将按默认的坐标点信息显示。
        工程控制人员通过此曲线图可以知道每个时间点的最高温度情况,但是具体某个点温度是多少,工程人员希望通过将鼠标指向图表中采集点就可以展现出来。要实现这个功能,我们需要在chart对象中指定tooltip属性,见下面代码:

tooltip:{
formatter:function(){
return'<b>'+this.series.name +'</b><br/>'+
this.x +': '+this.y +'℃';
}
},

配置上了这个属性就能得到下图显示的效果:
aaarticlea/png;base64,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*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" alt="" />
         当鼠标移动到10点中的采集点时,屏幕上会立即显示当时的温度值。
         针对有些应用场合,我们在一个图表中将展示多个线条代表不同的含义,这时就需要通过图例来说明什么颜色线条代表什么含义,这种情况下就需要启用图例说明,要启用图例说明就必须通过如下属性进行配置:

    egend:{
x:-50,
y:10,
enabled:true
},

只要使egend对象中的enabled属性设置为true就可以。设置为false,将不显示图例。
       上面介绍的是图例基本的属性设置,现在我们需要模拟一些大桥传感器获得的数据,依据这些数据来显示曲线图。在这里我们首先要定义两个js函数,这三个函数就是模拟获取数据的,请看下面:

function loadTime(){
window.setTimeout(getData,TIMEOUT);
}

上面这个函数就是我们在chart对象中设置events中的load事件指定的函数。在本函数中主要启动了一个定时器,在超过指定时间计秒后,将调用函数getData。

function getFirstData(){
var data =[];
var y_mx=Math.round(Math.random()*10);
var i;

for(i =0; i <=0; i++){
data.push({
x: current_time,
y: y_mx
});
if(current_time<=23){
current_time++;
}
}
return data;
}

这个函数是用来模拟初始化chart对象时,获得的大桥桥面温度值。其返回的是一个数组对象,数组中的每个对象包含x、y属性,这两个属性用来告诉chart对象x轴的某个坐标上面的y值是多少,并在此处显示一个坐标点,同时将连接相邻两个坐标点形成曲线。代码中的current_time是一个全局变量,用来对当前采集显示次数进行计数。

function getData(){
var current_x=x_arr[current_time]; //获取最大值
var series_mx = chart.series[0];
var y_mx=Math.round(Math.random()*10); series_mx.addPoint([current_time, y_mx],true,false); current_time++; if(current_time<=23){
window.setTimeout(getData,TIMEOUT);
}
}

上面这个函数其它部分都很简单,关键的一个重点代码是

series_mx.addPoint([current_time, y_mx],true,false);

这一段,这段代码是在chart图表中加入一个新的坐标点。
       截至到目前,全部的代码就编写完成,现在运行它,就可以模拟出大桥桥面稳定24小时检测情况的实时趋势图。

其实使用highcharts来做实时趋势图简单的处理还是比较简单的,更多的应用还可以在这些基础应用上进行拓展

<script type="text/javascript">
var x_arr = ['0:00', '1:00', '2:00', '3:00', '4:00', '5:00','6:00', '7:00', '8:00', '9:00', '10:00', '11:00','12:00', '13:00', '14:00', '15:00', '16:00', '17:00','18:00', '19:00', '20:00', '21:00', '22:00', '23:00'];
var chart;
var current_time = 0;
var TIMEOUT = 1000;
$(function () {
$(document).ready(function () {
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'line',
marginRight: 130,
marginBottom: 80,
events: {
load: loadTime
}
},
title: {
text: '大桥采集数据',
x: -20
},
subtitle: {
text: '传感器编号: 传感器',
x: -20
},
xAxis: {
title: {
enabled: true,
text: '时间(小时)'
},
categories: x_arr,
max: 23,
min: 0,
tickPixelInterval: 50
},
yAxis: {
title: {
text: '压力 (℃)'
},
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}]
},
tooltip: {
formatter: function () {
return '<b>' + this.series.name + '</b><br/>' +
this.x + ': ' + this.y + '℃';
}
},
legend: {
x: -50,
y: 10,
enabled: true
},
exporting: {
enabled: false
},
plotOptions: {
line: {
gapSize: 100
}
},
series: [{
name: '最大值',
data: getFirstData()
}]
});
});

});

function loadTime() {
window.setTimeout(getData, TIMEOUT);
}

function getFirstData() {
var data = [];
var y_mx = Math.round(Math.random() * 10);
var i;

for (i = 0; i <= 3; i++) {
data.push({
x: current_time,
y: y_mx
});
if (current_time <= 23) {
current_time++;
}
}
return data;
}

function getData() {
var current_x = x_arr[current_time];

//获取最大值
var series_mx = chart.series[0];
var y_mx = Math.round(Math.random() * 10);

series_mx.addPoint([current_time, y_mx], true, false);

current_time++;

if (current_time <= 23) {
window.setTimeout(getData, TIMEOUT);
}
}

</script>

使用HighCharts实现实时数据展示的更多相关文章

  1. 性能测试五十:Jmeter&plus;Influxdb&plus;Grafana实时数据展示系统搭建

    如果用生成jtl文件再分析结果的方式的话,每一次请求就会往jtl里面写一条数据,在进行长时间的稳定性测试的时候,特别是当TPS很高的时候,写入的数据会非常的大,这个时候等稳定性测试完成,再对jtl进行 ...

  2. iNeuOS工业互联平台,WEB组态(iNeuView)集成图报组件,满足实时数据图形化展示的需求

    目       录 1.      概述... 1 2.      平台演示... 2 3.      应用过程... 3 4.      实时数据展示效果... 5 1.   概述 市场和开源社区有 ...

  3. 项目总结&lbrack;2&rsqb;&lowbar;svg&plus;ajax&plus;webservice&plus;pSpace sdk实现实时数据的web展示

    1.使用svg实现组态画面和动态数据展示 通过js的定时器调用webservice方法获取数据后更新节点数据 /// <summary>启动定时刷新</summary> fun ...

  4. 使用Socket通信实现Silverlight客户端实时数据的获取&lpar;模拟GPS数据,地图实时位置&rpar;

    原文:使用Socket通信实现Silverlight客户端实时数据的获取(模拟GPS数据,地图实时位置) 在上一篇中说到了Silverlight下的Socket通信,在最后的时候说到本篇将会结合地图. ...

  5. SuperMap 9D 实时数据服务学习笔记

    SuperMap 在9月份发布了结合大数据技术的9D新产品,今天就和大家介绍下iServer9D中的实时数据服务. 1.技术框架 结合Spark的streaming流处理框架,将各种数据进行批量处理. ...

  6. 在DevExpress程序中使用PopupContainerEdit和PopupContainer实现数据展示

    在一些数据的即时查询场景中,我们可能需要对输入信息进行模糊查询并进行选择,例如在一些文本输入场景,如输入某个站点编码或者设备编码,然后获取符合的列表供用户选择的场景,本篇随笔介绍在DevExpress ...

  7. 服务追踪数据使用 RabbitMQ 进行采集 &plus; 数据存储使用 Elasticsearch &plus; 数据展示使用 Kibana

    服务追踪数据使用 RabbitMQ 进行采集 + 数据存储使用 Elasticsearch + 数据展示使用 Kibana https://www.cnblogs.com/xishuai/p/elk- ...

  8. 大数据技术之&lowbar;25&lowbar;手机APP信息统计系统项目&lowbar;01&lowbar;APP 数据生成模块 &plus; 数据收集模块 &plus; 数据处理模块框架搭建 &plus; 业务需求处理 &plus; 数据展示模块 &plus;项目总结 &plus; 问题总结

    一 项目概述1.1 角色1.2 业务术语1.3 项目效果展示二 项目需求三 项目概要3.1 项目技术架构3.2 项目目录结构3.3 项目技术选型3.4 项目整体集群规划3.5 创建项目工程四 APP ...

  9. 手把手教你写带登录的NodeJS爬虫&plus;数据展示

    其实在早之前,就做过立马理财的销售额统计,只不过是用前端js写的,需要在首页的console调试面板里粘贴一段代码执行,点击这里.主要是通过定时爬取https://www.lmlc.com/s/web ...

随机推荐

  1. Spark Standalone

    环境:CentOS 6.6 x64  选用Spark版本 1.4.1.Zookeeper 3.4.6 一.安装 1.Spark运行模式 Local:使用于windows和linux平台(多用于测试,细 ...

  2. windows安装Apache HTTP服务器报错:无法启动&comma;因为应用程序的并行配置不正确

    Apache HTTP服务器安装后报:无法启动,因为应用程序的并行配置不正确-(已解决)   0条评论 [摘要:本创做品,出自 “深蓝的blog” 专客,迎接转载,转载时请务必说明出处,不然有权穷究版 ...

  3. asp&period;net URL DES加密 什在URL中的使用

    DES 加密 有时会有 + = 这些特殊字符串 Server.UrlDecode(Request["UserName"]) //能解决  = 号,但是 +号会变成空格 HttpUt ...

  4. 【&period;net 深呼吸】获取日期的干支纪年

    其实,中国的农历是用干支纪年法的,“干支”即,十天干与十二地支. 十天干为:甲.乙.丙.丁.戊.己.庚.辛.壬.癸. 十二地支为:子.丑.寅.卯.辰.巳.午.未.申.酉.戌.亥. 十天干的含义如下: ...

  5. mysql中的范式与范式——读&lt&semi;&lt&semi;高性能mysql&gt&semi;&gt&semi;笔记一

    对于任何给定的数据库通常都有很多表示方法,从完全的范式化到完全的反范式化,以及两者的折中.在范式化的数据库中,每个事实数据会出现并且只出现一次.相反,在反范式化的数据库中,可能会存储在多个地方. 那什 ...

  6. CGI、FastCGI、PHP-FPM联系与区别(理解总结自其他博文)

    参考:http://blog.csdn.net/tyrantbear/article/details/52077321 参考:http://mp.weixin.qq.com/s?src=11& ...

  7. 队列优化的dijkstra

    #include<iostream> #include<queue> #include<cstdio> #include<cstring> #inclu ...

  8. 第二十七节:Java基础面向对象-静态,单例模式,继承详情知识点

    前言 Java基础面向对象-静态,单例模式,继承详情知识点.静态-static关键字,static变量,静态代码块,代码块(不加静态),对象创建过程,单例模式,继承. 静态-static关键字 // ...

  9. js中关于Blob对象的介绍与使用

    js中关于Blob对象的介绍与使用   blob对象介绍 一个 Blob对象表示一个不可变的, 原始数据的类似文件对象.Blob表示的数据不一定是一个JavaScript原生格式 blob对象本质上是 ...

  10. vs2015多行注释与取消多行注释

    注释: 先CTRL+K,然后CTRL+C 取消注释: 先CTRL+K,然后CTRL+U