一种基于滑动窗口的数据可视化方法和系统与流程

文档序号:14519243阅读:271来源:国知局
本发明涉及计算机可视化
技术领域
:,更具体地,涉及一种基于滑动窗口的数据可视化方法和系统。
背景技术
::时间序列数据的可视化分析在金融、银行业、制造业在内的许多行业中有广泛的需求。流数据是时间序列数据中重要的一种,对流数据的监控有着重要的意义和广泛的用途。滑动时间窗口模型是流数据的一种重要分析手段:新数据不断地进入窗口,而过期数据则被移出窗口。滑动窗口模型可以让用户聚焦于最近一段时间内的数据变化。现有的技术中基本上没有对于滑动窗口的可视化进行优化的方法。传统的可视化工具,如tableaudesktop8.1、saplumira1.13、qlikview11.20没有对海量数据的可视化进行优化,而是简单地将用户指定的时间内的所有数据都映射在屏幕上——这将影响显示效率。开源技术m4是一种比较经典的无误差数据规约技术,可以将大量的数据缩减到很小的数据量,同时不影响可视化效果,但是没有针对流数据进行优化。技术实现要素:本发明提供一种克服上述问题的一种基于滑动窗口的数据可视化方法和系统。根据本发明的一个方面,提供一种基于滑动窗口的数据可视化方法,包括:基于滑动窗口的长度和显示区域宽度上的像素数目,确定所述滑动窗口中的每一像素列的流数据点数;对于任一像素列,获取所述任一像素列的第一个流数据点、最后一个流数据点、流数据最大值点和流数据最小值点组成一像素列组,作为所述任一像素列对应的像素列组;多个像素列组组成一个维护列组,将所述维护列组存入循环数组,所述多个像素列组的维护列组数目与所述显示区域宽度上的像素数目相等;对所述维护列组中的所有流数据点进行重新渲染,以使得数据可视化。优选地,所述基于滑动窗口的长度和显示区域的像素宽度,确定所述滑动窗口中的每一像素列的流数据点数进一步包括:基于滑动窗口的长度和显示区域宽度上的像素数目,通过下式确定所述滑动窗口中的每一像素列的流数据点数:其中,g为所述滑动窗口中的每一像素列的流数据点数,n为滑动窗口的长度,w为显示区域宽度上的像素数目。优选地,所述任一像素列对应的像素列组中的所有流数据点的保存顺序为各自的到达次序。优选地,所述对所述维护列组中的所有流数据点进行重新渲染,以使得数据可视化进一步包括:按照预设的渲染频率对所述维护列组中的所有流数据点进行重新渲染,以使得数据可视化;所述预设的渲染频率的最大值是60hz。优选地,重新渲染的时间间隔不小于时间间隔临界值,所述时间间隔临界值为:其中,puser为预设的渲染频率。优选地,所述对所述维护列组中的所有流数据点进行重新渲染,以使得数据可视化进一步包括:判断到达的流数据点能否组成一个维护列组,若能组成一个维护列组,则对所述维护列组中的所有流数据点进行重新渲染,以使得数据可视化;若不能组成一个维护列组,则等待后续流数据点到达,直至到达的流数据点能组成一个维护列组。优选地,对所述维护列组中的所有流数据点进行重新渲染的最大渲染频率为:其中,p为流数据的到达频率,g为滑动窗口中的每一像素列的流数据点数。根据本发明的另一个方面,提供一种基于滑动窗口的数据可视化系统,包括:确定点数模块,用于基于滑动窗口的长度和显示区域宽度上的像素数目,确定所述滑动窗口中的每一像素列的流数据点数;获取流数据点模块,用于对于任一像素列,获取所述任一像素列的第一个流数据点、最后一个流数据点、流数据最大值点和流数据最小值点组成一像素列组,作为所述任一像素列对应的像素列组;保存模块,用于将所述维护列组存入循环数组,其中,多个像素列组组成一个维护列组,所述多个像素列组的维护列组数目与所述显示区域宽度上的像素数目相等;重新渲染模块,用于对所述维护列组中的所有流数据点进行重新渲染,以使得数据可视化。根据本发明的再一个方面,提供一种基于滑动窗口的数据可视化电子设备,包括:存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如上述任一项所述的可视化方法。根据本发明的还一个方面,提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行如上述任一项所述的可视化方法。本发明提供的一种基于滑动窗口的数据可视化方法和系统,通过设置获取任一像素列的第一个流数据点、最后一个流数据点、流数据最大值点和流数据最小值点组成一像素列组,对于每一个像素列,仅保存四个特征点,大大缩减了数据量,对于内存占用、渲染效率都有很大的提升。本发明能够针对现有技术中没有具体针对的流数据进行可视化优化的方法。本发明可以在流数据高速到来的条件下,对滑动窗口内的流数据进行高效的渲染。附图说明图1为本发明实施例中的一种基于滑动窗口的数据可视化方法的流程图;图2为本发明实施例中的一种基于滑动窗口的数据可视化示意图;图3为本发明实施例中的一种基于滑动窗口的数据可视化系统的模块图;图4为本发明实施例中的一种基于滑动窗口的数据可视化电子设备的结构示意图。具体实施方式下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。图1为本发明实施例中的一种基于滑动窗口的数据可视化方法的流程图,如图1所示,包括:基于滑动窗口的长度和显示区域宽度上的像素数目,确定所述滑动窗口中的每一像素列的流数据点数;对于任一像素列,获取所述任一像素列的第一个流数据点、最后一个流数据点、流数据最大值点和流数据最小值点组成一像素列组,作为所述任一像素列对应的像素列组;多个像素列组组成一个维护列组,将所述维护列组存入循环数组,所述多个像素列组的维护列组数目与所述显示区域宽度上的像素数目相等;对所述维护列组中的所有流数据点进行重新渲染,以使得数据可视化。具体地,滑动窗口的长度是指屏幕展现的最近的该长度的流数据点,举例来说,若滑动窗口的长度为n,是指屏幕始终展现的是最近的n个点的流数据。具体地,流数据是一组顺序、大量、快速、连续到达的数据序列,一般情况下,数据流可被视为一个随时间延续而无限增长的动态数据集合。流数据应用于网络监控、传感器网络、航空航天、气象测控和金融服务等领域。进一步地,任一像素列组包括任一像素列中的第一个流数据点、最后一个流数据点、流数据最大值点和流数据最小值点。维护列组包括多组,维护列组的个数与显示区域的宽度上的像素数目相等。进一步地,若维护列组数为w组,则其中包括4w个流数据点。具体地,没有明确结束点的数组,任何一点都可以是开始点又可以是结束点,这种数组是循环数组。进一步地,循环数组的长度为nmodw;其中,n为滑动窗口的长度,w为显示区域的像素宽度。本发明提供的一种基于滑动窗口的数据可视化方法,通过设置获取任一像素列的第一个流数据点、最后一个流数据点、流数据最大值点和流数据最小值点组成一像素列组,对于每一个像素列,仅保存四个特征点,大大缩减了数据量,对于内存占用、渲染效率都有很大的提升。本发明能够针对现有技术中没有具体针对的流数据进行可视化优化的方法。本发明可以在流数据高速到来的条件下,对滑动窗口内的流数据进行高效的渲染。进一步地,通过设置存入循环数组,可以保证过期的数据点自然被覆盖。进行重新渲染的所有流数据点足以保证没有精度损失。基于上述实施例,所述基于滑动窗口的长度和显示区域的像素宽度,确定所述滑动窗口中的每一像素列的流数据点数进一步包括:基于滑动窗口的长度和显示区域宽度上的像素数目,通过下式确定所述滑动窗口中的每一像素列的流数据点数:其中,g为所述滑动窗口中的每一像素列的流数据点数,n为滑动窗口的长度,w为显示区域宽度上的像素数目。基于上述实施例,所述任一像素列对应的像素列组中的所有流数据点的保存顺序为各自的到达次序。具体地,在任一像素列中只保存上述的第一个流数据点、最后一个流数据点、流数据最大值点和流数据最小值点,作为任一像素列组,其余的流数据点舍弃。基于上述实施例,所述对所述维护列组中的所有流数据点进行重新渲染,以使得数据可视化进一步包括:按照预设的渲染频率对所述维护列组中的所有流数据点进行重新渲染,以使得数据可视化;所述预设的渲染频率的最大值是60hz。具体地,60hz为人眼接受频率的上限。进一步地,按照预设的渲染频率对所述维护列组中的所有流数据点进行重新渲染是指对于屏幕上的流数据按照预设的值进行刷新。基于上述实施例,重新渲染的时间间隔不小于时间间隔临界值,所述时间间隔临界值为:其中,puser为预设的渲染频率。基于上述实施例,所述对所述维护列组中的所有流数据点进行重新渲染,以使得数据可视化进一步包括:判断到达的流数据点能否组成一个维护列组,若能组成一个维护列组,则对所述维护列组中的所有流数据点进行重新渲染,以使得数据可视化;若不能组成一个维护列组,则等待后续流数据点到达,直至到达的流数据点能组成一个维护列组。进一步地,如果预设频率比较低,在两次渲染之间,只会不断更新循环数组。基于上述实施例,对所述维护列组中的所有流数据点进行重新渲染的最大渲染频率为:其中,p为流数据的到达频率,g为滑动窗口中的每一像素列的流数据点数。作为一个优选实施例,图2为本发明实施例中的一种基于滑动窗口的数据可视化示意图。如图2所示,窗口大小为n=30。假设滑动窗口在屏幕上的展示区域为6×5像素。用户可以预设更新频率,但由于人眼接受的屏幕刷新速率有限,因此我们更新频率上限为60hz。已知显示区域的像素宽为6,因此窗口中每5个点画在一个像素列中,我们称之为一个像素列组(g),一个组的流数据点个数为g=n/w=5。每到来5个流数据点之后,形成一个像素列组。只保留像素列组内的第一个点、最后一个点、最大值点和最小值点,其余点舍弃。如图2中,只保留图中所示点。如果四个特征点有重叠,如最大点和最后一个点重合,则只剩下三个特征点。将以上特征存入循环数组中。循环数组可以保证过期的数据点自然被覆盖。每次重新渲染仅在至少集齐了一个组后才进行。如果触发渲染,将5个组内共20个点发送给渲染程序。基于上述实施例,图3为本发明实施例中的一种基于滑动窗口的数据可视化系统的模块图,如图3所示,包括:确定点数模块,用于基于滑动窗口的长度和显示区域宽度上的像素数目,确定所述滑动窗口中的每一像素列的流数据点数;获取流数据点模块,用于对于任一像素列,获取所述任一像素列的第一个流数据点、最后一个流数据点、流数据最大值点和流数据最小值点组成一像素列组,作为所述任一像素列对应的像素列组;保存模块,用于将所述维护列组存入循环数组,其中,多个像素列组组成一个维护列组,所述多个像素列组的维护列组数目与所述显示区域宽度上的像素数目相等;重新渲染模块,用于对所述维护列组中的所有流数据点进行重新渲染,以使得数据可视化。基于上述实施例,图4为本发明实施例中的一种基于滑动窗口的数据可视化电子设备的结构示意图,如图4所示,本发明还提供一种基于滑动窗口的数据可视化电子设备,包括:存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如上述任一所述的可视化方法,例如包括:基于滑动窗口的长度和显示区域宽度上的像素数目,确定所述滑动窗口中的每一像素列的流数据点数;对于任一像素列,获取所述任一像素列的第一个流数据点、最后一个流数据点、流数据最大值点和流数据最小值点组成一像素列组,作为所述任一像素列对应的像素列组;多个像素列组组成一个维护列组,将所述维护列组存入循环数组,所述多个像素列组的维护列组数目与所述显示区域宽度上的像素数目相等;对所述维护列组中的所有流数据点进行重新渲染,以使得数据可视化。基于上述实施例,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行如上述任一所述的可视化方法,例如包括:基于滑动窗口的长度和显示区域宽度上的像素数目,确定所述滑动窗口中的每一像素列的流数据点数;对于任一像素列,获取所述任一像素列的第一个流数据点、最后一个流数据点、流数据最大值点和流数据最小值点组成一像素列组,作为所述任一像素列对应的像素列组;多个像素列组组成一个维护列组,将所述维护列组存入循环数组,所述多个像素列组的维护列组数目与所述显示区域宽度上的像素数目相等;对所述维护列组中的所有流数据点进行重新渲染,以使得数据可视化。本发明提供的一种基于滑动窗口的数据可视化方法和系统,通过设置获取任一像素列的第一个流数据点、最后一个流数据点、流数据最大值点和流数据最小值点组成一像素列组,对于每一个像素列,仅保存四个特征点,大大缩减了数据量,对于内存占用、渲染效率都有很大的提升。本发明能够针对现有技术中没有具体针对的流数据进行可视化优化的方法。本发明可以在流数据高速到来的条件下,对滑动窗口内的流数据进行高效的渲染。进一步地,通过设置存入循环数组,可以保证过期的数据点自然被覆盖。进行重新渲染的所有流数据点足以保证没有精度损失。本发明将可视化方法和人体工学结合起来,采用适当的更新频率,避免了冗余的渲染操作,进一步提升效率。最后,本发明的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1