本发明涉及数据分析技术领域,具体为应用于群体间数据关系分析的可视化布局方法、系统、存储介质及计算机设备。
背景技术:
数据分析是一个开放式的数据探索过程,人们往往借助图形、表格等形式,对不同类型的数据进行分布特征、内在关联、发展趋势的研究,找到隐含在数据背后的业务规律、动向、风险,并采取对应的措施。以图形化的方式为载体的数据说明更加清晰明了,更容易获得人们的好感。
数据可视化是信息可视化与和科学可视化两大领域的融合。数据可视化不仅能够以图形的形式展示数据内容,也能够通过图形发现数据中隐藏的新的关联信息。数据可视化的优势包括:更快的传递速度,数据的多维显示,更直观的数据结构和关系等。在大数据分析处理领域,一图胜千字。采用数据可视化技术,可以大大提高数据的分析处理效率,借助于图形化手段,清晰有效地传达信息。
现有的群体间关系的可视化分析系统往往都是将一大堆数据借助某些载体进行展示,散乱的布局无法真正直观看到数据之间的关联关系。若分析人员需要获得这些数据的直观性展示时,还需要进行二次操作,有些可以自行拖拽可视化节点信息,进行组合合并以获得数据之间直观的关系信息,而有些则无法拖拽可视化节点信息,可能需要依赖自行笔记的方式去判断数据之间的关系信息。总的来说,现有群体间的关系分析技术无法直观、简洁明了地展示数据,给分析人员造成了一定的困扰,增加了工作量,在视觉上无法直观地看清业务数据所表达的关系信息。
技术实现要素:
为了解决现有技术所存在的问题,本发明提供应用于群体间数据关系分析的可视化布局方法、系统、存储介质及计算机设备,能够将群体间的数据关系更加清晰、直观地展现,提升了用户的体验,减少二次操作的工作量,方便实现用户与数据之间的交互,数据展示更加直观。
根据本发明实施例的应用于群体间数据关系分析的可视化布局方法,包括以下步骤:
s1、获取数据,从当前的搜索信息里获取分析对象及目标对象,根据数据库查询的信息得出相关的数据信息,数据信息包括对象信息以及对象与对象之间的关系信息;
s2、计算路径,根据相关的数据信息,基于广度优先搜索算法获得分析对象的路径信息;
s3、获取展示画布上当前前端展示区域的宽高,计算路径信息中各个分析对象、目标对象在当前前端展示区域的坐标位置;
s4、根据各个分析对象、目标对象在当前前端展示区域的坐标位置,渲染可视化的群体间数据关系信息。
在一个优选的实施例中,步骤s2中基于广度优先搜索算法获得分析对象的全部路径信息,包括如下步骤:
s21、数据初始化,通过标记不同的状态颜色,对分析对象的不同状态进行区分:已访问未完全搜索的分析对象标记为第一状态颜色,已访问且搜索完毕的分析对象标记为第二状态颜色,未访问的分析对象标记为第三状态颜色;并将所有的关系信息都标记为未访问的分析对象,初始化一个队列;
s22、对当前分析对象进行搜索,把该分析对象放入队列中,初始化两个数组,即关系数量和前置点,前置点为当前分析对象沿着路径找到的前一个关联的对象,若没有前一个关联的对象则前置点为null;声明一个变量来暂时保存队列中的第一个分析对象,然后从邻接信息中拿到所有被标记的分析对象的邻接对象,即全部有关联的对象信息,并把分析对象的状态设置为已访问未完全搜索的状态;
s23、循环所有的邻接对象,将未访问的分析对象的状态颜色改为第一状态颜色,从而把未访问的分析对象的状态改为已访问未完全搜索,然后添加至前置点中,将修改为已访问未完全搜索状态的分析对象放入队列中;
s24、循环结束后,将分析对象的状态颜色改为第二状态颜色,即将分析对象的状态改为已访问且搜索完毕,得到最终的关系数量、前置点,此时的前置点就是从当前分析对象开始搜索到的相关的全部对象;根据相关的全部对象组合得到路径信息,所述相关的全部对象包括分析对象和目标对象。
在一个优选的实施例中,步骤s3中根据步骤s2得到的分析对象的路径信息,先进行相同对象信息的合并;基于所合并的相同对象信息,获取展示画布上当前前端展示区域的宽高,取出最长路径的对象数值,对各个分析对象、目标对象在当前前端展示区域的坐标位置进行计算;计算步骤包括:
s31、获取展示画布上当前前端展示区域的宽高,获取分析对象及目标对象的展示区域宽高;
s32、计算各个分析对象、目标对象的中心点位置的横向间距、纵向间距,各个分析对象、目标对象的中心点位置的横向间距为当前前端展示区域的宽与分析对象及目标对象的展示区域的宽之差,再除以最长路径的对象数值;各个分析对象、目标对象的中心点位置的纵向间距为当前前端展示区域的高与分析对象及目标对象的展示区域的高之差,再除以最长路径的对象数值;
s33、在各个分析对象、目标对象的中心点位置的横向间距、纵向间距的基础上,计算得到各个分析对象、目标对象在当前前端展示区域的坐标位置。
根据本发明实施例的应用于群体间数据关系分析的可视化布局系统,包括:
数据获取模块,用于从当前的搜索信息里获取分析对象及目标对象,根据数据库查询的信息得出相关的数据信息,数据信息包括对象信息以及对象与对象之间的关系信息;
路径计算模块,用于根据相关的数据信息,基于广度优先搜索算法获得分析对象的路径信息;
坐标位置计算模块,用于获取展示画布上当前前端展示区域的宽高,计算路径信息中各个分析对象、目标对象在当前前端展示区域的坐标位置;
渲染展示模块,用于根据各个分析对象、目标对象在当前前端展示区域的坐标位置,渲染可视化的群体间数据关系信息。
根据本发明的存储介质,其上存储有计算机指令,所述计算机指令被处理器执行时实现本发明可视化布局方法的步骤。
根据本发明的计算机设备,包括存储器、处理器以及存储在存储上并可在处理器上运行的计算机程序,处理器执行计算机程序时,实现本发明可视化布局方法。
本发明借助bfs算法,添加改进得到的路径,再去计算其整个布局的信息,将不同的群体加以区分布局展示,使整个数据展示更加明朗,关系条理更加清晰。本发明与现有技术相比,主要有如下优点及有益效果:
1、现有的可视化系统都是根据其数据特点进行布局,如力导图、环形图等,无法将真正的业务数据特点展示出来。本发明可以对群体间多对多的数据进行展示,协助分析人员对所分析群体进行更加直观的判断、分析。
2、现有一些可视化组件,都是将一些布局算法整个融合至自身的组件中,无法将其抽离出来。本发明是解耦式的程序,可以适用于任何的系统,应用于不同的前端可视化组件,只需要调用即可。
3、本发明不仅可以针对多对多的群体间数据关系分析,还可以将其应用于一对多、某个单独的群体关系数据进行布局计算。
附图说明
为了更清楚地说明本发明的技术方案,下面将对本方法说明描述中所需要使用的附图作简单的介绍。
图1为广度优先搜索算法的搜索路径示意图;
图2为本发明搜索最短路径的结果布局图;
图3为本发明可视化布局方法的流程图;
图4为本发明一个实施例中的可视化布局ui图。
具体实施方式
本发明旨在给用户提供一个将多对多、一对多或某个单独的群体分析信息得到更加符合业务需求的可视化展示方法,借助于图形化手段,清晰有效地传达数据与沟通信息。本发明首先要根据用户输入的群体信息,查询得到该群体信息的数据信息;在广度优先搜索算法(bfs)的基础上,添加对搜索路径对象的计算和存储,得到群体间对象之间关系信息的路径信息;然后将获取得到的路径信息进行归类,再通过计算前端展示的位置,如均值、距离等,计算出各个对象的坐标信息,最后将得到的这些对象的坐标渲染至展示的位置上。
下面结合实施例及附图对本发明的技术方案进行详细的描述,但本发明的实施方式不限于此。
本实施例中,应用于群体间数据关系分析的可视化布局方法包括以下步骤:
s1、获取数据。
从当前的搜索信息里,获取分析对象群体(包括若干分析对象a、b、c),以及目标对象群体(包括若干目标对象a1、b1、c1)。根据后端在数据库查询的信息,得出相关的数据信息,数据信息包括对象信息以及对象与对象之间的关系信息。
s2、计算路径。根据步骤s1得到的数据信息,基于广度优先搜索算法获得分析对象的全部路径信息。
关于广度优先搜索算法,可以通过下面的一个例子来说明:
如图1,现在需要找出从节点a到节点f的最短路径(假设节点之间的每一段距离相等),其步骤如下:假设存在一个空的搜索队列queue,首先将节点a添加进队列queue;判断队列第一个节点是否是需要查找的目标节点,若不是,则将第一个节点的直接子节点添加进队列,并移除第一个节点;重复上一步骤的判断,直到第一个节点为目标节点,或者队列为空(即代表没有合适的路径)。
本发明在上述广度优先搜索算法的基础上添加了一些改进,主要在状态标记、路径计算和数据存储方面,具体步骤如下:
s21、数据初始化,通过标记不同的状态颜色,对分析对象的不同状态进行区分:已访问未完全搜索的分析对象标记为白色,已访问且搜索完毕的分析对象标记为黑色,未访问的分析对象标记为灰色;并将所有的关系信息都标记为未访问的分析对象,初始化一个队列。
s22、对当前分析对象a进行搜索,此时,需要把该分析对象a放入队列中,初始化两个数组,即关系数量d和前置点prevmap,前置点为当前分析对象a沿着路径找到的前一个关联的对象,若没有前一个关联的对象则前置点为null。声明一个变量来暂时保存队列中的第一个分析对象a,然后从邻接信息中拿到所有被标记的分析对象a的邻接对象,即全部有关联的对象信息。并把分析对象的状态设置为已访问但是未完全搜索的白色状态。
s23、循环所有的邻接对象:将未访问的分析对象(颜色为灰色)的状态颜色改为白色,从而把未访问的分析对象的状态改为已访问未完全搜索,然后添加至前置点prevmap中,并将该分析对象(前述修改为已访问未完全搜索的分析对象)放入队列中。
s24、循环结束后,将分析对象的状态颜色改为黑色,即将分析对象的状态改为已访问且搜索完毕,得到最终的关系数量d、前置点prevmap,此时的前置点prevmap就是从当前分析对象a开始搜索到的相关的全部对象(包括分析对象和目标对象);根据相关的全部对象组合得到路径信息。
以上就是在传统bfs算法的基础上添加了状态标记、路径计算和存储,最终可以得到当前分析对象的路径信息、关系数量。经过以上改进过的bfs算法,分别对分析对象a、b、c搜索查找,可以得到如下的全部路径信息:a-b1、c-c1、a-d-a1、a-b1–e、b-b1–f,如图2所示。从全部路径信息中可获得最短路径。
s3、获取展示画布上当前前端展示区域的宽高,计算路径信息中各个分析对象、目标对象在当前前端展示区域的坐标位置。
根据步骤s2得到的分析对象的全部路径信息,先进行相同对象信息的合并,目的是为了更加直观计算在展示画布上的坐标位置。对象信息经过简单的合并处理,得到以下数据:
以分析对象a开头的路径有:a-b1、a-d-a1、a-b1-e;
以分析对象b开头的路径有:b-b1-f、b-b1–e;
以分析对象c开头的路径有:c-c1;
基于以上所合并的相同对象信息,获取展示画布上当前前端展示区域的宽高,取出最长路径的对象数值(即关系数量d),由上述所见,最长路径的对象数值为3;计算步骤包括:
s31、获取展示画布上当前前端展示区域的宽高,获取分析对象及目标对象的展示区域宽高;假设展示画布上当前前端展示区域的宽高为1000*600,分析对象及目标对象的展示区域宽高为50*50;
s32、计算各个分析对象、目标对象的中心点位置的横向间距、纵向间距;
各个分析对象、目标对象的中心点位置的横向间距为当前前端展示区域的宽与分析对象及目标对象的展示区域的宽之差,再除以最长路径的对象数值,即:(1000-50)/3=316,各个分析对象、目标对象的中心点位置的纵向间距为当前前端展示区域的高与分析对象及目标对象的展示区域的高之差,再除以最长路径的对象数值,即:(600-50)/3=183;间距的设置是为了展示美观,以免可视化图形直接贴边展示;
s33、在各个分析对象、目标对象的中心点位置的横向间距、纵向间距的基础上,计算得到各个分析对象、目标对象在当前前端展示区域的坐标位置。
分析对象a在当前前端展示区域的x坐标值为:25(左边间距)+25(分析对象的展示区域),y坐标值为:600-25(间距)-25(分析对象的展示区域);
分析对象b在当前前端展示区域的x坐标值为:25(左边间距)+25(分析对象的展示区域),y坐标值为:316*2-25(分析对象的展示区域);
依次类推,可以得到其余分析对象、目标对象在当前前端展示区域的x坐标值、y坐标值。
s4、根据各个分析对象、目标对象在当前前端展示区域的坐标位置,渲染可视化的群体间数据关系信息。
渲染可视化,可以根据所采用的当前前端应用的第三方组件,如d3、gojs、cytoscape等可视化组件进行初始化的渲染;也可以根据自行设置的canvas、svg(前端页面渲染的标签)等,得到图形布局坐标图位置,如图4。
下面以前端组件cytoscape为例,进一步阐述本发明。
一、分析人员通过输入两个不同的对象群体(分析对象群体:张x、王x、刘xx;目标对象群体:钱x、黄x)的信息后,http请求后端服务,得到当前的两个对象群体的关系信息。
二、数据处理得到路径信息。即调用本发明的程序,将其数据作为参数传入本发明的数据。根据本发明的基于bfs算法,做以下分析处理:
1、对所有关系信息添加颜色的标识:已访问但未完全搜索的对象标记为白色,已访问且搜索完毕的对象标记为黑色,未访问的对象标记为灰色;并初始化一个新的队列。
2、将分析对象张x开始进行搜索,此时,需要把分析对象张x放入队列中,初始化两个数组,即距离d(指关系数量)和前置点prevmap(当前对象张x沿着路径找到的前一个关联对象是什么,即为前置点,若找不到前一个关联对象则前置点为null)。声明一个变量来暂时保存队列中的第一个分析对象张x,然后从中拿到所有被标记的分析对象张x的邻接对象,即全部有关联的对象信息。并把分析对象张x的状态设置为已访问但未完全搜索的白色状态。
3、循环所有的邻接对象:将未访问的分析对象(即颜色为灰色)的颜色改为白色,然后添加至前置点prevmap中,并将该分析对象放入队列中。
4、循环结束后,将分析对象张x的颜色改为黑色(即已访问和搜索完毕),此时得到搜索到的结果的关系数量的总和d和前置点prevmap,这时的prevmap就是从分析对象张x开始搜索到的相关的全部对象,即为:[张x,广东xxx公司]。
重复以上查找,可以得出以下关系对象路径信息:王x-广东xxx公司;王x-钱x-xxxx医院;刘x-广东xxx公司-黄x;刘x-黄x-xxx医院;
根据以上得到路径信息,假设当前的前端应用展示的区域为1000*600,分析对象展示的区域为50*50;各个对象的中心点位置横向间距为:(1000-50)/4=237.5;各个对象的中心点位置的纵向间距为:(600-50)/4=137.5;则可以计算得到各个对象的坐标信息为:
张x((25+25),(137.5*3));
王x((25+25),(137.5*2));
刘x((25+25),137.5);
广东xxx公司((25+25+237.5),(137.5*1.5));
钱x((25+25+237.5*2),(137.5*1.5));
黄x((25+25+237.5*2),(137.5*2.5));
xxxx医院((25+25+237.5*3),(137.5*4))。
三、初始化前端组件cytoscape,使用其组件的自定义布局,且设置其特殊展示的样式配置,如节点的图片、节点的文字、边框、关系的风格等。
四、数据展示。将计算得到的各个数据(关系坐标)和初始的配置信息(各个对象的图片、对象名称描述等)传入前端组件cytoscape中,并将cytoscape的布局方式设置为自定义布局,初始化后,将上述的关系信息展示于前端应用,如图4所示。
基于与上述可视化布局方法相同的构思,本发明提出的应用于群体间数据关系分析的可视化布局系统,包括:
数据获取模块,用于实现步骤s1,从当前的搜索信息里获取分析对象及目标对象,根据数据库查询的信息得出相关的数据信息,数据信息包括对象信息以及对象与对象之间的关系信息;
路径计算模块,用于实现步骤s2,根据相关的数据信息,基于广度优先搜索算法获得分析对象的路径信息;
坐标位置计算模块,用于实现步骤s3,获取展示画布上当前前端展示区域的宽高,计算路径信息中各个分析对象、目标对象在当前前端展示区域的坐标位置;
渲染展示模块,用于实现步骤s4,根据各个分析对象、目标对象在当前前端展示区域的坐标位置,渲染可视化的群体间数据关系信息。
此外,本发明的技术方案还可呈现为存储介质或计算机设备。存储介质上存储有计算机指令,计算机指令被处理器执行时实现本发明可视化布局方法的步骤。计算机设备包括存储器、处理器以及存储在存储上并可在处理器上运行的计算机程序,处理器执行计算机程序时,实现本发明可视化布局方法。
上述实施过程,后端服务可以采用任意编程语言、在任何可计算设备上(包含但不限于计算机、手机、可移动装置等)实现。适用于任何的可视化系统,任何的前端组件,进行展示。
以上所述,仅为本发明的一种具体实施方式,本发明的保护范围并不局限于此,对于本领域普通技术人员来说,可以根据上述说明不加创造性地进行改进或变换,而所有这些改进和变换都应属于本发明权利要求所请求保护的范围。