首页> 中国专利> 基于层次化模型的数据可视化方法及其系统

基于层次化模型的数据可视化方法及其系统

摘要

本发明公开了一种基于层次化模型的数据可视化方法及系统,其中数据可视化方法包括下列步骤:图形数据准备、图形顶点采样分层、子图顶点连接、图形顶点受力计算、顶点位置更新、图形布局递归计算、图形布局层次化绘制;其中数据可视化系统包括下列模块:图形数据准备模块、图形顶点采样分层模块、子图顶点连接模块、图形顶点受力计算模块、顶点位置更新模块、图形布局递归计算模块、图形布局层次化绘制模块。本发明可以加快算法收敛,正确计算布局,保持效果稳定性。另外,本发明不仅可以科学地绘制大数据的图形布局,而且还提供了便捷的交互操作。因此,本发明具有快速高效地计算美观布局、帮助用户挖掘潜在知识规律的优点。

著录项

  • 公开/公告号CN105912562A

    专利类型发明专利

  • 公开/公告日2016-08-31

    原文格式PDF

  • 申请/专利权人 华南理工大学;

    申请/专利号CN201610162397.3

  • 发明设计人 蔡毅;陈震鸿;闵华清;

    申请日2016-03-21

  • 分类号G06F17/30(20060101);

  • 代理机构44245 广州市华学知识产权代理有限公司;

  • 代理人罗观祥

  • 地址 510640 广东省广州市天河区五山路381号

  • 入库时间 2023-06-19 00:22:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-05-14

    授权

    授权

  • 2016-09-28

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20160321

    实质审查的生效

  • 2016-08-31

    公开

    公开

说明书

技术领域

本发明涉及一种数据可视化技术,特别涉及一种基于层次化模型的数据可视化方法及其系统。

背景技术

目前,随着信息时代的高速发展,电子商务、社交网络、移动互联网、数字家庭等信息技术已经被普遍应用于人们的工作和生活中,这些应用不断产生海量数据,而这些数据又包含了各方面潜在而有价值的信息。对大数据的分析和管理,将创造出巨大的经济效应和社会价值,例如,在商业领域,大数据有助于企业掌握市场动态,指定精准的营销策略,为消费者提供更加及时和个性化的服务;在公共事业领域,大数据有助于维护社会稳定、促进经济发展;在医疗领域,大数据有助于疾病暴发的跟踪和处理等等。

但由于数量大、生成速度快以及数据多样等特点,大数据呈现出不断增长的复杂性,导致传统的分析方法已经无法对其进行正确的分析。因此,大数据领域非常需要科学有效的分析技术,而数据可视化分析就是一种最直观的大数据分析技术:它将互相关联的海量数据表示成各种可见的图形对象,并根据数据的关系,计算出数据点在图形中的相对位置,从而把复杂抽象的数据分布转换成直观明了的大图布局。然后,它充分利用人类视觉系统对图形的高灵敏度和快速分析能力,通过人的观察分析来获得潜在的数据规律,从而高效地进行知识挖掘的过程。因此,该技术是大数据研究领域中的一个热点。

数据可视化分析是指将关系型数据转换为图形,并观察图形的特征,分析数据潜在规律,从而挖掘知识的过程。它最大的优势是,以最直观的方式呈现数据特征,降低了分析难度,提高了挖掘效率。这项技术广泛存在于各种数据分析应用,例如社交网络分析(Social Networks Analysis)、互联网沟通(Internet Communications)以及生物信息学(Bioinformatics)等等;同时,该研究领域也具有非常大的挑战性,因为它涉及计算机科学、物理学、图形设计学、符号学,以及艺术等几个重要知识领域。

数据可视化方法的核心在于图形布局的计算方法。当前图形布局的计算方 法主要有:基于光谱和基于力引导(force-directed)的布局计算方法。前者的主要不足是计算出来的图形布局不够美观,难以表现数据的内在特征,而且采用的特征向量计算方法不能直观地解释计算结果;对于后者,虽然大部分方法简单直观,布局效果好,但只适用于几十或几百的小数据,对于大数据则存在以下的缺点和不足:

1.由于大数据的数据量大等特点,大图布局的计算难度很大,难以产生比较好的布局效果。

2.算法本身的计算复杂度比较高,导致大图布局的计算非常缓慢,运行时间特别久。

3.绘制图形的边框大小被计算机的屏幕大小所限制,导致直接绘制图形布局时产生顶点和连接顶点的边大量重叠,难以清晰地观察和分析布局的特征,从而无法挖掘大数据的潜在规律。

因此,为了更加有效地计算大数据的图形布局,需要采用新的策略来计算图形布局,并设计有效的图形交互方式,从而提高布局算法的准确性和高效性,以及图形绘制方式的有效性,满足用户观察和分析大数据的需求,达到挖掘知识的目的。

发明内容

本发明的首要目的在于克服现有技术的缺点与不足,提供一种基于层次化模型的数据可视化方法,该方法通过采用层次化模型、结合模拟退火技术等策略,极大提高了算法的布局效果和计算效率;同时还通过采用不同粗细粒度层次显示图形的方式,解决了大图无法在屏幕中清晰显示的问题。

本发明的另一目的在于克服现有技术的缺点与不足,提供一种基于层次化模型的数据可视化系统,该系统能够正确并高效地计算大量数据的图形布局,科学合理地在有限的屏幕中绘制大图,并为用户提供了两种有效的交互方式,较好地满足了用户快速分析大数据的要求,达到了挖掘知识的目的。

本发明的首要目的通过下述技术方案实现:基于层次化模型的数据可视化方法,包括:

图形数据准备:将海量的数据对象映射成图形中的顶点,任意两个数据之间的关系映射成无向边,生成结构化的图形数据。

图形顶点采样分层:基于层次化模型的策略,根据一定的规则,对已有的 数据顶点递归地进行采样,生成数据顶点不断减少的多份子图形数据,来表示从细粒度层次(顶点个数多)向粗粒度层次(顶点个数少)变化的多个子图。

子图顶点连接:由于对原始图形的顶点进行了采样分层操作后,所生成的每个子图都只有顶点,而没有边,因此需要根据原始图形的边,来构建每个子图的边,即连接子图各自的顶点,从而得到完整的子图形数据。

图形顶点受力计算:首先随机初始化每个顶点的位置;然后,由于在经典的力引导模型中,图形被模拟成力学系统,每个顶点都被模拟成一个带同种电荷的粒子,每一条边都被模拟成一根弹簧;因此,需要计算任意两个顶点之间的基于库伦定律的电场斥力,以及邻接顶点之间的基于胡克定律的弹簧力。

顶点位置更新:根据每个顶点当前所受的合力,采用改进的模拟退火等技术,将顶点移动到新的位置。当所有顶点移动到新的位置后,再重新计算每个顶点所受的合力,再移动到新的位置;按照这种方式不断迭代计算,直至整个图形系统的力处于相对稳定状态。

图形布局递归计算:从最粗粒度的子图开始计算布局,并用粗粒度子图的正确布局来初始化下一个较细粒度子图的布局,再计算该细粒度图形的布局;按照这种方式从粗粒度向细粒度递归地计算每个子图的布局,直至得到原始图形的布局。

图形布局层次化绘制:采用层次化模型的策略,根据屏幕大小和图形数据量的相对关系,对大图形绘制较粗粒度的图形布局;并设计缩放操作,当用户需要观察局部情况,则放大该局部的图形布局;并设计平移操作,方便用户将屏幕外的图形布局移动到屏幕范围内进行观察。

所述的图形数据准备包括以下步骤:

(1a)将数据集中的每个对象都映射成一个顶点;

(1b)将两个对象之间的任意联系都映射成一条无向边;

(1c)为每个顶点和每一条边都赋予不重复的ID号,从而生成结构化的图形数据文件。

所述的图形顶点采样分层包括以下步骤:

(2a)采样生成子图的顶点集合:从原始图形的顶点集合中采样生成更小的顶点集合,为了保持不同粒度图形之间的几何特征,使用的方法是生成原始顶点集合的最大独立集合(MaximalIndependent Set,MIS)。假设图形G=(V,E),其中,V表示顶点集合,E表示边的集合;那么集合是一个独立集合的充 要条件是:该集合中任意两个顶点的图形距离大于或等于2(其中,图形距离是指两个顶点在图形中的最短路径)。其实这就等价于,集合S中的任意两个顶点在图G中都不是邻接点。图G可以生成多个MIS,但每个MIS都不是其他MIS的子集。生成MIS方法是,随机选取顶点vi∈V,把vi加入到集合S中,同时把vi从V中删除;然后再把vi的所有邻接节点从V中删除;重复上述操作直至V为空。最后得到的独立集合S就是当前图形的MIS,也就是子图的点集。

(2b)判断是否应停止采样分层操作:在生成一系列粒度不断粗化的顶点集合V1,V2,…,Vk之后(其中k表示子图的个数),当2k≤Diameter(G0)(Diameter(G0)表示原始图形的直径)时,MIS采样分层操作就停止。

所述的子图顶点连接包括以下步骤:

(3a)计算图形的平均度:由MIS采样分层方法得到了一系列粒度不断粗化的图形的顶点集合V1,V2,…,Vk,下一步的内容是,重构这些顶点集合对应的边集,从而得到完整的图形。重构边集的过程其实就是寻找每个顶点的新邻接点,其关键之处也是尽可能保持上一层图形的几何特征。

假设将图形表示为Gi(0≤i≤k),其对应的顶点集合表示为Vi,对应的边集表示为Ei。为了让粗粒度图形保持细粒度图形的几何特征,本发明要介绍平均度(Average>

avgDeg(Gi)=avgDeg(Gi-1)

其中,avgDeg(Gi)=2|Ei|/|Vi|。假设细粒度图形Gi-1=(Vi-1,Ei-1),粗粒度图形Gi=(Vi,Ei)。其中Ei未知,则由平均度可知:

2|Ei|/|Vi|=2|Ei-1|/|Vi-1|>

即,|Ei|=|Ei-1|(|Vi|/|Vi-1|)。然后,计算粗粒度图形中每个顶点所要连接的新邻接点个数ni,p

ni,p=|Ei|(ni-1,p/|Ei-1|)>

其中,ni-1,p表示细粒度图形中的同一顶点的邻接点个数;0≤i≤k,0≤p≤|Vi|。

(3b)寻找每个顶点的邻接点:采用广度优先搜索(Breadth-First Search, BFS)算法寻找邻接点:选取图Gi的顶点vp∈Vi,该顶点同时存在于图Gi-1中;以vp为根节点,在图Gi-1中进行BFS查找;如果当前查找的顶点vq∈Vi-1也存在于顶点集合Vi中,那么就把vq放入vp的新邻接点集合Np中,然后继续查找,直至邻接节点的个数达到预先指定的数量。不断重复上述操作,直至遍历完Vi中所有的顶点。

所述的图形顶点受力计算包括以下步骤:

(4a)随机初始化每个顶点的位置:为了促进算法收敛,本发明设置以下的初始化方式:

xi=rand1%V0,yi=rand2%V0

其中,(xi,yi)表示顶点i在二维空间中的坐标,rand1和rand2表示两个不同的随机数,V0表示原始图形的顶点个数。这种随机初始化的期望结果就是,使顶点尽可能被均匀地初始化在一个合适大小的以原点为中心的正方形区域内,从而避免顶点的初始位置过于分散或过于重叠。

(4b)对顶点构建空间划分树:由于斥力存在于任意两个顶点之间,因此如果直接计算每个顶点所受的斥力,那么计算时间复杂度将是Θ(|V|2)(其中,V表示顶点的个数),导致算法效率非常低下,难以适用于大数据的可视化分析。由于影响斥力的关键因素是顶点之间的距离,因此可以采用多极扩展定理(Multipole>

本发明利用K维树(K-Dimensional Tree,KD-Tree)作为空间划分树。KD-Tree是一种在k维欧几里德空间中将多个点划分成不同区域的数据结构。KD-Tree是一种二叉树,它的每一个非叶子结点都可以视为一个将空间分割成两半的超平面。超平面的一侧被表示为该节点的左子节点,而另一侧则被表示为该节点的右子节点。例如,在二维坐标系中,如果使用x轴垂直分割面,那么在分割面左侧的点被划分到左子节点,而右侧的点就被划分为右子节点。

本发明利用“轴对齐分割”的方法构建KD-Tree,即选择坐标系中的某一坐标轴的某一位置的垂直分割面进行空间的分割。由于本发明研究的是二维图形 的布局,因此这里只讨论二维坐标系中KD-Tree的构建方法:首先,将整个二维空间初始为树的根节点,并根据当前树的深度选择垂直分割面所在的坐标轴(例如,在根节点时选择x轴,当深度加1时选择y轴,以此方式轮换坐标轴);然后,以某种方式指定垂直分割面位于坐标轴的具体位置,并用该分割面将当前的空间区域划分成两部分,生成左右子节点。不断重复以上步骤,直至当前区域的点的个数小于某个阈值。本发明采用二进制分割法指定垂直分割面位于坐标轴上的具体位置:(假设,把x轴当作分割面所在坐标轴)首先,将该区域内所有顶点的x坐标转换为二进制数字,然后比较所有二进制数字的最高有效位,把最高有效位为0的点放入左子节点、为1的点放入右子节点;最后,当该区域内的所有顶点被划分完之后,把比较的二进制位从最高有效位左移一位,以供下次选择x轴划分时使用。

(4c)计算顶点所受的斥力:根据多极扩展定理,本发明将通过遍历KD-Tree来计算斥力。对于距离当前顶点足够远的一群顶点,本发明采用如下方式进行计算:

首先,假设C={c1,…,cm}是由m个带电荷Q(C)={q1,…,qm}的粒子组成的集合,这m个带电粒子位于不同的位置p(C)={p1,…,pm}。其中,所有顶点的位置都被标识为复数形式:

假设一个半径为r且圆心为z0的圆形包含了m个带有电荷且位于不同位置的粒子;那么,对于任何满足|z-z0|>r的位置z∈C,这m个带电粒子对z产生的总的电势能用以下公式计算:

ϵ(z)=a0log(z-z0)+Σk=14ak(z-z0)k---(1)

其中,该公式进行的是k阶多极扩展,这里,k被设置为4,目的是使估计值的误差小于102

根据公式(1)计算得到的带电粒子在电场中的电势能,进一步计算电场力。处于位置z且带单位电荷的粒子受到的电场力是:

(Re(ε′(z)),-Im(ε′(z)))(2)

其中,Re表示复数的实部,Im表示复数的虚部。

基于上述方式,假设N表示KD-Tree中圆心为z0、半径为r的节点,该节点包含了k个带电粒子{v0,…,vk}。为了近似计算任意一个位置为z的粒子v∈V所受的斥力,要从KD-Tree的根节点开始,前序遍历:在节点N,如果|z-z0|>r,那>

(4d)计算顶点所受的弹力:由于弹力与距离的关系往往是对数关系,而不是类似胡克定律的线性关系,因此本发明采用的弹力计算公式为:

Attraction=d2log(d/d′)

其中,d表示两个邻接顶点之间的欧拉距离,d′表示弹簧的原长。

(4e)计算顶点所受的合力:每个顶点所受的合力包括来自其他所有顶点的斥力,以及来自邻接顶点的弹力,所以顶点所受合力的计算公式如下:

Ftotal=Frepl+Fattr

其中,Ftotal表示合力,Frepl表示顶点所受斥力,Fattr表示顶点所受弹力。

所述的顶点位置更新包括以下步骤:

(5a)计算顶点移动的位移:经典的力引导(force-directed)布局的原理是,先计算出所有顶点所受的弹力和斥力,并根据合力的大小和方向将顶点移动到新的位置,从而逐步减小顶点所受的力;对所有顶点进行多次迭代计算,使图形系统达到稳定平衡状态,从而得到最终布局。因此,在上一步计算得到顶点的合力后,这一步要做的是更新顶点的位置。

由于图形的初始布局是随机生成的,当初始布局比较差时,在计算过程中如果某些顶点移动太远或太近,都可能导致某些顶点在两个特定的位置之间来回振荡,使图形系统难以稳定,布局结果很差。为了科学地计算每个顶点移动的位移,本发明改进并应用传统的模拟退火技术。

由力引导布局算法的原理可知,计算布局的过程实际就是每个顶点寻找最佳位置的过程,相当于把布局的计算问题转换为一个全局优化问题;而模拟退火就是一种能够在一定时间内找到全局最优解的技术。该技术的原理是,首先将系统加热到一定的温度(这相当于随机初始化图形的布局),加热使顶点的能量变大(这相当于初始状态时顶点受到比较大的合力),使顶点离开原来的位置,并随机地在其他位置移动,以较大的概率找到能量比原来更低的位置;然后对系统进行退火冷却的操作,此时顶点的移动范围逐渐缩小,进而收敛到相对稳定的位置。计算顶点移动位移的公式如下:

disp(v)=Ftotal(v)||Ftotal(v)||min(t,||Ftotal(v)||)

其中,Ftotal(v)表示顶点v所受的合力,t表示模拟退火过程中的温度。t被>

t=t*λ

其中,λ是一个超参数,本发明将其设置为0.9。

(5b)更新顶点的位置:根据每个顶点移动的位移,将顶点移动到新的位置:

posnew(v)=posold(v)+disp(v)

其中,posnew(v)表示顶点v的新位置,posold(v)表示顶点v的旧位置,disp(v)表示顶点v需要移动的位移。

所述的图形布局递归计算包括以下步骤:

(6a)计算最粗粒度图形的布局:随机初始化最粗粒度图形的顶点位置,根据前面所述的方法计算最终的稳定布局。由于最粗粒度图形是顶点个数最少的子图,因此可以很快计算出该图形的布局。

(6b)递归计算更细粒度图形的布局:用最粗粒度图形的顶点位置,初始化更细粒度图形的顶点的位置(即,将粗粒度布局作为细粒度布局的骨架),然后再计算细粒度图形的布局。不断递归计算,直至得到原始图形的最终布局。

所述的图形布局层次化绘制包括以下步骤:

(7a)计算顶点的概率密度分布:为了计算顶点的概率密度分布,本发明将利用非参数估计方法——核密度估计(Kernel Density Estimation,KDE)。核密度是一种估计连续随机变量的概率密度函数的非参数估计方法。假设顶点坐标(x,y)是一种连续随机变量,{(x1,y1),…,(xn,yn)}是符合概率密度函数f(x,y)的n个独立同分布的样本点,那么总体的核密度估计为:

f^h(x,y)=1n(hxhy)Σi=1nK(x-xihx,y-yihy)

其中,K表示核函数;hx、hy表示带宽,是一个调整核密度估计曲线的平滑程度的参数。核函数的选定非常重要。为了表现出顶点的概率密度比图形中的空白位置要高,可以把顶点假想为一座山峰的最高点:假设当前只有一个最高点,则离最高点越远的位置,其海拔高度越低,概率密度也越低,直至为零。基于这个假设,本发明选定均匀对称的二维高斯函数作为核函数。二维高斯函数的公式如下:

f(x,y)=12πσxσy·exp(-((x-μx)22σx2+(y-μy)22σy2))

其中,μx和μy表示均值,σx和σy表示方差。由于每个顶点都处于以自身为最高点的二维高斯曲面中,当两个顶点互相靠近时,彼此的二维高斯曲面将互相叠加,从而估计出顶点的概率密度分布。

(7b)绘制图形布局:由于大图的顶点个数非常多(几十万或者几百万等等),而图形的绘制空间受计算机屏幕大小所限制,导致大量顶点互相重叠,难以分辨图形的布局。因此,本发明根据已计算好的顶点概率密度分布,将互相堆叠或邻近的顶点合并成一个顶点,并且合并相应的边,从而绘制出粗粒度图形的布局,便于观察图形的整体特征。

(7c)图形交互设计:为了观察图形的局部分布情况,本发明设计了两个科学有效的交互操作:缩放操作和平移操作。利用缩放操作,可以缩小和放大图形。特别是当放大图形某一局部时,可以将粗粒度图形的单个顶点分裂成多个顶点,并绘制相应的边,显示出细粒度层次的布局。利用平移操作,可以将当前粒度的图形在屏幕外部分移动到屏幕内,从而进行观察。

缩放操作的具体过程为(假设每次缩小或放大的倍数为m):首先,将鼠标移动到需要缩放的位置,记录当前的鼠标位置p;接着,如果进行的是放大操作,则将所有顶点的坐标乘以倍数m,反之则乘以1/m,记录当前的鼠标位置为q;然后将锚点从位置q平移到位置p,其他顶点则按照同样的平移量|q-p|进行平移;最后绘制图形。

平移操作的具体过程为:首先,将鼠标移动到需要平移的位置,记录此时的鼠标位置p;接着,拖拽整个图形至目标位置,记录此时的鼠标位置为q;然后,计算锚点的平移量,并根据平移量移动所有顶点的坐标;最后绘制图形。

本发明的另一目的通过下述技术方案实现:基于层次化模型的数据可视化系统,包括:

图形数据准备模块:给每个顶点和每一条无向边都赋予特定的ID号,并按照一定格式生成结构化的图形数据文件。

图形顶点采样分层模块:对原始图形的顶点集合进行递归采样,生成顶点个数逐渐减少的多个顶点集合。

子图顶点连接模块:根据原始图形的几何结构特征,采用广度优先搜索方式,连接距离邻近的顶点,生成子图的边集,得到完整的子图数据。

图形顶点受力计算模块:随机初始化原始图形中每个顶点的位置,近似计 算顶点所受斥力,并具体计算顶点所受弹力,将斥力和弹力相加得到合力。

顶点位置更新模块:根据每个顶点所受的合力,将顶点移动到新的位置。

图形布局递归计算模块:从最粗粒度的子图开始计算布局,并以粗粒度图形布局为基础,递归地计算每个子图的布局,最终得到原始图形的布局。

图形布局层次化绘制模块:根据屏幕大小,绘制合适粒度层次的子图,或者直接绘制原始图形;允许用户缩放或移动图形。

进一步地,所述的图形数据准备模块具体用于:

将输入数据集中的每个对象都映射成一个顶点,将两个对象之间的任意联系都映射成一条无向边;为每个顶点和每一条边都赋予不重复的ID号,从而生成结构化的图形数据文件。

进一步地,所述的图形顶点采样分层模块具体用于:

该模块利用在原始顶点集合中生成最大独立集合的方式,从原始图形的顶点集合中采样生成更小的顶点集合。假设图形G=(V,E),其中,V表示顶点集合,E表示边的集合;那么集合是一个独立集合的充要条件是:该集合中任意两个顶点的图形距离大于或等于2(其中,图形距离是指两个顶点在图形中的最短路径)。

图G可以生成多个MIS,但每个MIS都不是其他MIS的子集。生成MIS方法是,随机选取顶点vi∈V,把vi加入到集合S中,同时把vi从V中删除;然后再把vi的所有邻接节点从V中删除;重复上述操作直至V为空。最后得到的独立集合S就是当前图形的MIS,也就是子图的点集。

该模块会自动判断是否应停止采样分层操作:在生成一系列粒度不断粗化的顶点集合V1,V2,…,Vk之后(其中k表示子图的个数),当2k≤Diameter(G0)(Diameter(G0)表示原始图形的直径)时,MIS采样分层操作就停止。

进一步地,所述的子图顶点连接模块具体用于:

计算原始图形的平均度,并根据平均度,对一系列粒度不断粗化的图形的顶点集合V1,V2,…,Vk所对应的边集进行重构。重构边集时,根据上一层图形的几何特征寻找每个顶点的新邻接点。

假设将图形表示为Gi(0≤i≤k),其对应的顶点集合表示为Vi,对应的边集表示为Ei。在重构的过程中,为了让粗粒度图形保持细粒度图形的几何特征,,不同粒度层次之间的子图的平均度是相同的,即,

avgDeg(Gi)=avgDeg(Gi-1)

其中,avgDeg(Gi)=2|Ei|/|Vi|。假设细粒度图形Gi-1=(Vi-1,Ei-1),粗粒度图形Gi=(Vi,Ei)。其中Ei未知,则由平均度可知:

2|Ei|/|Vi|=2|Ei-1|/|Vi-1|>

即,|Ei|=|Ei-1|(|Vi|/|Vi-1|)。然后,计算粗粒度图形中每个顶点所要连接的新邻接点个数ni,p

ni,p=|Ei|(ni-1,p/|Ei-1|)>

其中,ni-1,p表示细粒度图形中的同一顶点的邻接点个数;0≤i≤k,0≤p≤|Vi|。

本发明利用广度优先搜索(Breadth-First Search,BFS)算法寻找邻接点:选取图Gi的顶点vp∈Vi,该顶点同时存在于图Gi-1中;以vp为根节点,在图Gi-1中进行BFS查找;如果当前查找的顶点vq∈Vi-1也存在于顶点集合Vi中,那么就把vq放入vp的新邻接点集合Np中,然后继续查找,直至邻接节点的个数达到预先指定的数量。不断重复上述操作,直至遍历完Vi中所有的顶点。

进一步地,所述的图形顶点受力计算模块具体用于:

首先随机初始化每个顶点的位置,为了促进算法收敛,本发明设置以下的初始化方式:

xi=rand1%V0,yi=rand2%V0

其中,(xi,yi)表示顶点i在二维空间中的坐标,rand1和rand2表示两个不同的随机数,V0表示原始图形的顶点个数。这种随机初始化有助于顶点被尽可能均匀地被初始化在以原点为中心的正方形区域内(该正方形区域的大小与顶点的个数成正比关系),从而避免顶点的初始位置过于分散或过于重叠。

本发明结合多极扩展定理,基于顶点的空间分布,构建空间划分树,即把相同区域的顶点归到同一个空间树节点内,根据当前顶点与其他顶点的距离,近似计算每个顶点所受的斥力。

本发明利用K维树(K-Dimensional Tree,KD-Tree)作为空间划分树。

本发明采用“轴对齐分割”的方法构建KD-Tree,选择坐标系中的某一坐标轴的某一位置的垂直分割面进行空间的分割。由于本发明研究的是二维图形的布局,因此这里只讨论二维坐标系中KD-Tree的构建方法:首先,将整个二维空间初始为树的根节点,并根据当前树的深度选择垂直分割面所在的坐标轴(例如,在根节点时选择x轴,当深度加1时选择y轴,以此方式轮换坐标轴);然后,以某种方式指定垂直分割面位于坐标轴的具体位置,并用该分割面将当前 的空间区域划分成两部分,生成左右子节点。不断重复以上步骤,直至当前区域的点的个数小于某个阈值。本发明采用二进制分割法指定垂直分割面位于坐标轴上的具体位置:(假设,把x轴当作分割面所在坐标轴)首先,将该区域内所有顶点的x坐标转换为二进制数字,然后比较所有二进制数字的最高有效位,把最高有效位为0的点放入左子节点、为1的点放入右子节点;最后,当该区域内的所有顶点被划分完之后,把比较的二进制位从最高有效位左移一位,以供下次选择x轴划分时使用。

根据多极扩展定理,本发明将通过遍历KD-Tree来计算斥力。对于距离当前顶点足够远的一群顶点,本发明采用如下方式进行计算:

首先,假设C={c1,…,cm}是由m个带电荷Q(C)={q1,…,qm}的粒子组成的集合,这m个带电粒子位于不同的位置p(C)={p1,…,pm}。其中,所有顶点的位置都被标识为复数形式:

假设一个半径为r且圆心为z0的圆形包含了m个带有电荷且位于不同位置的粒子;那么,对于任何满足|z-z0|>r的位置z∈C,这m个带电粒子对z产生的总的电势能用以下公式计算:

ϵ(z)=a0log(z-z0)+Σk=14ak(z-z0)k---(1)

其中,该公式进行的是k阶多极扩展,这里,k被设置为4,目的是使估计值的误差小于102

根据公式(1)计算得到的带电粒子在电场中的电势能,进一步计算电场力。处于位置z且带单位电荷的粒子受到的电场力是:

(Re(ε′(z)),-Im(ε′(z)))(2)

其中,Re表示复数的实部,Im表示复数的虚部。

基于上述方式,假设N表示KD-Tree中圆心为z0、半径为r的节点,该节点包含了k个带电粒子{v0,…,vk}。为了近似计算任意一个位置为z的粒子v∈V所受的斥力,要从KD-Tree的根节点开始,前序遍历:在节点N,如果|z-z0|>r,那么就用公式(1)和(2)近似计算该节点的粒子群对v产生的斥力。反之,则根据节点类型做不同处理:如果该节点是内部节点,则继续遍历它的左右子节点;如果该节点是叶子节点,则按原始的方式逐一计算v与该节点中其他粒子之间的斥力。

基于弹力与距离的对数关系,本发明采用的弹力计算公式为:

Attraction=d2log(d/d′)

其中,d表示两个邻接顶点之间的欧拉距离,d′表示弹簧的原长。

每个顶点所受的合力包括来自其他所有顶点的斥力,以及来自邻接顶点的弹力,所以本发明计算顶点所受合力如下:

Ftotal=Frepl+Fattr

其中,Ftotal、Frepl、Fattr分别表示顶点所受的合力、斥力、弹力。

进一步地,所述的顶点位置更新模块具体用于:

根据每个顶点所合力的大小和方向将顶点移动到新的位置,从而逐步减小顶点所受的力;对所有顶点进行多次迭代计算,使图形系统达到稳定平衡状态,从而得到最终布局。

由于图形的初始布局是随机生成的,当初始布局比较差时,在计算过程中如果某些顶点移动太远或太近,都可能导致某些顶点在两个特定的位置之间来回振荡,使图形系统难以稳定。为了科学地计算每个顶点移动的位移,本发明改进并应用传统的模拟退火技术。

由力引导布局算法的原理可知,计算布局的过程实际就是每个顶点寻找最佳位置的过程,相当于把布局的计算问题转换为一个全局优化问题;而模拟退火就是一种能够在一定时间内找到全局最优解的技术。本发明改进模拟退火技术,计算顶点移动位移的公式如下:

disp(v)=Ftotal(v)||Ftotal(v)||min(t,||Ftotal(v)||)

其中,Ftotal(v)表示顶点v所受的合力,t表示模拟退火过程中的温度。t被初始化为(其中,K是一个超参数,本发明将其设置为0.1;V表示当前图形的顶点总数)。另外,t会随着迭代次数的增加而递减:

t=t*λ

其中,λ是一个超参数,本发明将其设置为0.9。

更新顶点的位置,根据每个顶点移动的位移,将顶点移动到新的位置:

posnew(v)=posold(v)+disp(v)

其中,posnew(v)表示顶点v的新位置,posold(v)表示顶点v的旧位置,disp(v)表示顶点v需要移动的位移。

进一步地,所述的图形布局递归计算模块具体用于:

计算最粗粒度图形的布局,随机初始化最粗粒度图形的顶点位置,根据前面所述的方法计算最终的稳定布局。由于最粗粒度图形是顶点个数最少的子图,因此可以很快计算出该图形的布局。

本发明将粗粒度布局作为细粒度布局的骨架,递归计算更细粒度图形的布局。用最粗粒度图形的顶点位置,初始化更细粒度图形的顶点的位置,然后再计算细粒度图形的布局。不断递归计算,直至得到原始图形的最终布局。

进一步地,所述的图形布局层次化绘制模块具体用于:

本发明将利用非参数估计方法——核密度估计(Kernel Density Estimation,KDE),来计算顶点的概率密度分布。核密度是一种估计连续随机变量的概率密度函数的非参数估计方法。假设顶点坐标(x,y)是一种连续随机变量,{(x1,y1),…,(xn,yn)}是符合概率密度函数f(x,y)的n个独立同分布的样本点,那么总体的核密度估计为:

f^h(x,y)=1n(hxhy)Σi=1nK(x-xihx,y-yihy)

其中,K表示核函数;hx、hy表示带宽,是一个调整核密度估计曲线的平滑程度的参数。核函数的选定非常重要。为了表现出顶点的概率密度比图形中的空白位置要高,本发明选定均匀对称的二维高斯函数作为核函数。二维高斯函数的公式如下:

f(x,y)=12πσxσy·exp(-((x-μx)22σx2+(y-μy)22σy2))

其中,μx和μy表示均值,σx和σy表示方差。由于每个顶点都处于以自身为最高点的二维高斯曲面中,当两个顶点互相靠近时,彼此的二维高斯曲面将互相叠加,从而估计出顶点的概率密度分布。

本发明根据已计算好的顶点概率密度分布,将互相堆叠或邻近的顶点合并成一个顶点,并且合并相应的边,并将顶点和无向边通过GPU渲染到屏幕上,从而绘制出粗粒度图形的布局,便于观察图形的整体特征。

本发明设计了两个科学有效的交互操作:缩放操作和平移操作。利用缩放操作,可以缩小和放大图形。特别是当放大图形某一局部时,可以将粗粒度图形的单个顶点分裂成多个顶点,并绘制相应的边,显示出细粒度层次的布局。利用平移操作,可以将当前粒度的图形在屏幕外部分移动到屏幕内,从而进行观察。

缩放操作的具体过程为(假设每次缩小或放大的倍数为m):首先,将鼠标移动到需要缩放的位置,记录当前的鼠标位置p;接着,如果进行的是放大操作,则将所有顶点的坐标乘以倍数m,反之则乘以1/m,记录当前的鼠标位置为q;然后将锚点从位置q平移到位置p,其他顶点则按照同样的平移量|q-p|进行平 移;最后绘制图形。

平移操作的具体过程为:首先,将鼠标移动到需要平移的位置,记录此时的鼠标位置p;接着,拖拽整个图形至目标位置,记录此时的鼠标位置为q;然后,计算锚点的平移量,并根据平移量移动所有顶点的坐标;最后绘制图形。

本发明相对于现有技术具有如下的优点及效果:

1、本发明提出了层次化模型,并改进了模拟退火策略,不仅获得了美观的布局效果,降低了振荡的概率,提高了效果稳定性,而且减少了计算布局的迭代次数,加快了运行的时间。

2、本发明巧妙利用了物理学中的多极扩展定理,通过对图形顶点划分空间区域、构建KD-Tree的方法,近似计算了顶点所受斥力,避免了直接计算顶点斥力的高计算复杂度,大大提高了布局算法的性能,使本发明更加适用于大数据的快速可视化分析。

3、本发明利用层次化模型来绘制不同粒度层次的图形,解决了大数据图形布局存在的在有限屏幕空间中顶点大量重叠、难以观察的问题。另外,本发明设计的缩放操作和平移操作,方便用户观察图形布局的整体特征和局部规律,非常有助于实现知识挖掘的目的。

附图说明

图1为本发明中公开的一种基于层次化模型的数据可视化方法的总体流程图;

图2为基于层次化模型的图形布局计算流程图;

图3为本发明中公开的一种基于层次化模型的数据可视化系统的组成框图。

具体实施方式

下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。

实施例

如图1所示,一种基于层次化模型的数据可视化方法的总体流程图,该基于层次化模型的数据可视化方法包括以下步骤:

S1、图形数据准备:给每个顶点和每一条无向边都赋予特定的ID号,并按照一定格式生成结构化的图形数据文件。

S2、图形顶点采样分层:对原始图形的顶点集合进行递归采样,生成顶点个数逐渐减少的多个顶点集合。

S3、子图顶点连接:根据原始图形的几何结构特征,采用广度优先搜索方式,连接距离邻近的顶点,生成子图的边集,得到完整的子图数据。

S4、图形顶点受力计算:随机初始化原始图形中每个顶点的位置,近似计算顶点所受斥力,并具体计算顶点所受弹力,将斥力和弹力相加得到合力。

S5、顶点位置更新:根据每个顶点所受的合力,将顶点移动到新的位置。

S6、图形布局递归计算:从最粗粒度的子图开始计算布局,并以粗粒度图形布局为基础,递归地计算每个子图的布局,最终得到原始图形的布局。

S7、图形布局层次化绘制:根据屏幕大小,绘制合适粒度层次的子图,或者直接绘制原始图形;允许用户缩放或移动图形。

下面对本发明提供的一种基于层次化模型的数据可视化方法作详细说明:

(一)步骤S1、图形数据准备。S11、将输入数据集中的每个对象都映射成一个顶点;S12、将两个对象之间的任意联系都映射成一条无向边;S13、为每个顶点和每一条边都赋予不重复的ID号,从而生成结构化的图形数据文件。以Facebook数据集为例,假如我们从Facebook网站上获取到了某年某月内的整个数据集,数据集的内容包括:用户昵称、好友、已关注对象、居住地、所在公司所在学校、生日等等。对于这份原生数据,本发明的图形数据准备模块会找出所有不重复的用户,然后给每个用户当作一个特定的顶点,赋予唯一的ID号,并构建用户名和ID号之间的映射;然后根据用户与用户之间是否存在关系(例如:好友关系)生成无向边,并给每一条边赋予唯一的ID号;最后将顶点和边的ID按照结构化的格式生成图形数据文件。

(二)步骤S2、图形顶点采样分层。该步骤利用在原始顶点集合中生成最大独立集合的方式,从原始图形的顶点集合中采样生成更小的顶点集合。假设图形G=(V,E),其中,V表示顶点集合,E表示边的集合;那么集合是一个独立集合的充要条件是:该集合中任意两个顶点的图形距离大于或等于2(其中,图形距离是指两个顶点在图形中的最短路径)。

生成MIS方法是,随机选取顶点vi∈V,把vi加入到集合S中,同时把vi从V中删除;然后再把vi的所有邻接节点从V中删除;重复上述操作直至V为空。最>

该步骤会自动判断是否应停止采样分层操作:在生成一系列粒度不断粗化的顶点集合V1,V2,…,Vk之后(其中k表示子图的个数),当2k≤Diameter(G0)(Diameter(G0)表示原始图形的直径)时,MIS采样分层操作就停止。

(三)步骤S3、子图顶点连接。计算原始图形的平均度,并根据平均度,对一系列粒度不断粗化的图形的顶点集合V1,V2,…,Vk所对应的边集进行重构。重构边集时,根据上一层图形的几何特征寻找每个顶点的新邻接点。

假设将图形表示为Gi(0≤i≤k),其对应的顶点集合表示为Vi,对应的边集表示为Ei。在重构的过程中,为了让粗粒度图形保持细粒度图形的几何特征,不同粒度层次之间的子图的平均度是相同的,即,

avgDeg(Gi)=avgDeg(Gi-1)

其中,avgDeg(Gi)=2|Ei|/|Vi|。假设细粒度图形Gi-1=(Vi-1,Ei-1),粗粒度图形Gi=(Vi,Ei)。其中Ei未知,则由平均度可知:

2|Ei|/|Vi|=2|Ei-1|/|Vi-1|>

即,|Ei|=|Ei-1|(|Vi|/|Vi-1|)。然后,计算粗粒度图形中每个顶点所要连接的新邻接点个数ni,p

ni,p=|Ei|(ni-1,p/|Ei-1|)>

其中,ni-1,p表示细粒度图形中的同一顶点的邻接点个数;0≤i≤k,0≤p≤|Vi|。

本发明利用广度优先搜索算法寻找邻接点:选取图Gi的顶点vp∈Vi,该顶点同时存在于图Gi-1中;以vp为根节点,在图Gi-1中进行BFS查找;如果当前查找的顶点vq∈Vi-1也存在于顶点集合Vi中,那么就把vq放入vp的新邻接点集合Np中,然后继续查找,直至邻接节点的个数达到预先指定的数量。不断重复上述操作,直至遍历完Vi中所有的顶点。

如图2所示,图形布局的计算主要包括计算顶点所受合力、更新顶点位置,以及计算出当前子图的正确布局后的递归布局计算等步骤。

(四)步骤S4、图形顶点受力计算。首先随机初始化每个顶点的位置,为了促进算法收敛,本发明设置以下的初始化方式:

xi=rand1%V0,yi=rand2%V0

其中,(xi,yi)表示顶点i在二维空间中的坐标,rand1和rand2表示两个不>0表示原始图形的顶点个数。这种随机初始化有助于顶点被尽可能均匀地被初始化在以原点为中心的正方形区域内(该正方形区域的大小与顶点的个数成正比关系),从而避免顶点的初始位置过于分散或过于重叠。

本发明结合多极扩展定理,基于顶点的空间分布,构建空间划分树,即把相同区域的顶点归到同一个空间树节点内,根据当前顶点与其他顶点的距离,近似计算每个顶点所受的斥力。

本发明利用K维树作为空间划分树,并采用“轴对齐分割”的方法构建KD-Tree。选择坐标系中的某一坐标轴的某一位置的垂直分割面进行空间的分割。由于本发明研究的是二维图形的布局,因此这里只讨论二维坐标系中KD-Tree的构建方法:首先,将整个二维空间初始为树的根节点,并根据当前树的深度选择垂直分割面所在的坐标轴(例如,在根节点时选择x轴,当深度加1时选择y轴,以此方式轮换坐标轴);然后,以某种方式指定垂直分割面位于坐标轴的具体位置,并用该分割面将当前的空间区域划分成两部分,生成左右子节点。不断重复以上步骤,直至当前区域的点的个数小于某个阈值。本发明采用二进制分割法指定垂直分割面位于坐标轴上的具体位置:(假设,把x轴当作分割面所在坐标轴)首先,将该区域内所有顶点的x坐标转换为二进制数字,然后比较所有二进制数字的最高有效位,把最高有效位为0的点放入左子节点、为1的点放入右子节点;最后,当该区域内的所有顶点被划分完之后,把比较的二进制位从最高有效位左移一位,以供下次选择x轴划分时使用。

根据多极扩展定理,本发明将通过遍历KD-Tree来计算斥力。对于距离当前顶点足够远的一群顶点,采用如下方式进行计算:

首先,假设C={c1,…,cm}是由m个带电荷Q(C)={q1,…,qm}的粒子组成的集合,这m个带电粒子位于不同的位置p(C)={p1,…,pm}。其中,所有顶点的位置都被标识为复数形式:

假设一个半径为r且圆心为z0的圆形包含了m个带有电荷且位于不同位置的粒子;那么,对于任何满足|z-z0|>r的位置z∈C,这m个带电粒子对z产生的总的电势能用以下公式计算:

ϵ(z)=a0log(z-z0)+Σk=14ak(z-z0)k---(1)

其中,该公式进行的是k阶多极扩展,这里,k被设置为4,目的是使估计值的误差小于102

根据公式(1)计算得到的带电粒子在电场中的电势能,进一步计算电场力。 处于位置z且带单位电荷的粒子受到的电场力是:

(Re(ε′(z)),-Im(ε′(z)))(2)

其中,Re表示复数的实部,Im表示复数的虚部。

基于上述方式,假设N表示KD-Tree中圆心为z0、半径为r的节点,该节点包含了k个带电粒子{v0,…,vk}。为了近似计算任意一个位置为z的粒子v∈V所受的斥力,要从KD-Tree的根节点开始,前序遍历:在节点N,如果|z-z0|>r,那么就用公式(1)和(2)近似计算该节点的粒子群对v产生的斥力。反之,则根据节点类型做不同处理:如果该节点是内部节点,则继续遍历它的左右子节点;如果该节点是叶子节点,则按原始的方式逐一计算v与该节点中其他粒子之间的斥力。

基于弹力与距离的对数关系,本发明采用的弹力计算公式为:

Attraction=d2log(d/d′)

其中,d表示两个邻接顶点之间的欧拉距离,d′表示弹簧的原长。

每个顶点所受的合力包括来自其他所有顶点的斥力,以及来自邻接顶点的弹力,所以本发明计算顶点所受合力如下:

Ftotal=Frepl+Fattr

其中,Ftotal、Frepl、Fattr分别表示顶点所受的合力、斥力、弹力。

(五)步骤S5、顶点位置更新。根据每个顶点所合力的大小和方向将顶点移动到新的位置,从而逐步减小顶点所受的力;对所有顶点进行多次迭代计算,使图形系统达到稳定平衡状态,从而得到最终布局。

由于图形的初始布局是随机生成的,当初始布局比较差时,在计算过程中如果某些顶点移动太远或太近,都可能导致某些顶点在两个特定的位置之间来回振荡,使图形系统难以稳定。为了科学地计算每个顶点移动的位移,本发明改进并应用传统的模拟退火技术。由力引导布局算法的原理可知,计算布局的过程实际就是每个顶点寻找最佳位置的过程,相当于把布局的计算问题转换为一个全局优化问题;而模拟退火就是一种能够在一定时间内找到全局最优解的技术。本发明改进模拟退火技术,计算顶点移动位移的公式如下:

disp(v)=Ftotal(v)||Ftotal(v)||min(t,||Ftotal(v)||)

其中,Ftotal(v)表示顶点v所受的合力,t表示模拟退火过程中的温度。t被初始化为(其中,K是一个超参数,本发明将其设置为0.1;V表示当前图形的顶点总数)。另外,t会随着迭代次数的增加而递减:

t=t*λ

其中,λ是一个超参数,本发明将其设置为0.9。

更新顶点的位置,根据每个顶点移动的位移,将顶点移动到新的位置:

posnew(v)=posold(v)+disp(v)

其中,posnew(v)表示顶点v的新位置,posold(v)表示顶点v的旧位置,disp(v)表示顶点v需要移动的位移。

(六)步骤S6、图形布局递归计算。计算最粗粒度图形的布局,随机初始化最粗粒度图形的顶点位置,根据前面所述的方法计算最终的稳定布局。由于最粗粒度图形是顶点个数最少的子图,因此可以很快计算出该图形的布局。

本发明将粗粒度布局作为细粒度布局的骨架,递归计算更细粒度图形的布局。用最粗粒度图形的顶点位置,初始化更细粒度图形的顶点的位置,然后再计算细粒度图形的布局。不断递归计算,直至得到原始图形的最终布局。

(七)步骤S7、图形布局层次化绘制。本发明将利用非参数估计方法——核密度估计,来计算顶点的概率密度分布。核密度是一种估计连续随机变量的概率密度函数的非参数估计方法。假设顶点坐标(x,y)是一种连续随机变量,{(x1,y1),…,(xn,yn)}是符合概率密度函数f(x,y)的n个独立同分布的样本点,那么总体的核密度估计为:

f^h(x,y)=1n(hxhy)Σi=1nK(x-xihx,y-yihy)

其中,K表示核函数;hx、hy表示带宽,是一个调整核密度估计曲线的平滑程度的参数。核函数的选定非常重要。为了表现出顶点的概率密度比图形中的空白位置要高,本发明选定均匀对称的二维高斯函数作为核函数。二维高斯函数的公式如下:

f(x,y)=12πσxσy·exp(-((x-μx)22σx2+(y-μy)22σy2))

其中,μx和μy表示均值,σx和σy表示方差。由于每个顶点都处于以自身为最高点的二维高斯曲面中,当两个顶点互相靠近时,彼此的二维高斯曲面将互相叠加,从而估计出顶点的概率密度分布。

本发明根据已计算好的顶点概率密度分布,将互相堆叠或邻近的顶点合并成一个顶点,并且合并相应的边,并将顶点和无向边通过GPU渲染到屏幕上,从而绘制出粗粒度图形的布局,便于观察图形的整体特征。

本发明设计了两个科学有效的交互操作:缩放操作和平移操作。利用缩放 操作,可以缩小和放大图形。特别是当放大图形某一局部时,可以将粗粒度图形的单个顶点分裂成多个顶点,并绘制相应的边,显示出细粒度层次的布局。利用平移操作,可以将当前粒度的图形在屏幕外部分移动到屏幕内,从而进行观察。

缩放操作的具体过程为(假设每次缩小或放大的倍数为m):首先,将鼠标移动到需要缩放的位置,记录当前的鼠标位置p;接着,如果进行的是放大操作,则将所有顶点的坐标乘以倍数m,反之则乘以1/m,记录当前的鼠标位置为q;然后将锚点从位置q平移到位置p,其他顶点则按照同样的平移量|q-p|进行平移;最后绘制图形。

平移操作的具体过程为:首先,将鼠标移动到需要平移的位置,记录此时的鼠标位置p;接着,拖拽整个图形至目标位置,记录此时的鼠标位置为q;然后,计算锚点的平移量,并根据平移量移动所有顶点的坐标;最后绘制图形。

如图3所示,一种基于层次化模型的数据可视化系统的结构框图,该基于层次化模型的数据可视化系统包括:

图形数据准备模块:给每个顶点和每一条无向边都赋予特定的ID号,并按照一定格式生成结构化的图形数据文件。

图形顶点采样分层模块:对原始图形的顶点集合进行递归采样,生成顶点个数逐渐减少的多个顶点集合。

子图顶点连接模块:根据原始图形的几何结构特征,采用广度优先搜索方式,连接距离邻近的顶点,生成子图的边集,得到完整的子图数据。

图形顶点受力计算模块:随机初始化原始图形中每个顶点的位置,近似计算顶点所受斥力,并具体计算顶点所受弹力,将斥力和弹力相加得到合力。

顶点位置更新模块:根据每个顶点所受的合力,将顶点移动到新的位置。

图形布局递归计算模块:从最粗粒度的子图开始计算布局,并以粗粒度图形布局为基础,递归地计算每个子图的布局,最终得到原始图形的布局。

图形布局层次化绘制模块:根据屏幕大小,绘制合适粒度层次的子图,或者直接绘制原始图形;允许用户缩放或移动图形。

综上所述,本发明的工作原理:本发明是一种基于层次化模型的数据可视化方法。方法针对基本布局算法计算大图时出现振荡导致布局效果不理想,以及迭代次数多、运行时间长的问题,本发明提出了层次化模型的方法。对大图进行采样得到子图,并对该子图继续采样生成更小的子图,按照这种方式递归 地生成一系列子图,从而形成粒度不断粗化(粒度越粗,表示顶点个数越少)的层次化结构;接着,随机初始化最粗粒度图形的布局并计算其正确布局,然后用该布局对下一层细粒度图形进行初始化,再继续计算该细粒度图形的正确布局;以此方式递归地计算出原始图形的最终布局。这种层次化模型的方法降低了振荡的概率,提高了布局的效果,同时减少了迭代次数,加快了运行的时间。其次,针对计算斥力的效率低的问题,本发明根据多极扩展定理,利用KD-Tree对斥力进行了近似计算,从而大幅度提高算法效率。

另外,在改进和优化布局算法之后,本发明进一步研究图形的绘制和交互方式。由于大图的数据量多,导致顶点大量重叠,不利于用户进行可视化分析。对此,本发明设计了层次化绘制图形的算法:利用KDE非参数估计方法计算大图的顶点概率密度分布,然后根据密度分布情况,合并重叠或靠近的顶点及其对应的边,从而展现粗粒度图形的布局,呈现出大图的基本特征;同时,当放大观察局部细节时,被合并的顶点或边也可以被分裂复原。根据这种层次化绘制图形的策略,本发明还设计了必要而有效的交互方式:缩放操作和平移操作。缩放操作是根据图形的绘制方式设计的:当图形的某一局部被放大时,算法会根据顶点的密度分布,将原本合并的顶点分裂成原来的多个顶点,相应地恢复原来的边,从而显示出细粒度图形的布局。用户进行缩放操作后,部分图形会在屏幕之外无法观看,而平移操作针对这个问题向用户提供了移动图形的功能。当用户对图形的某一位置按住并拖拽鼠标,平移操作就会重新渲染图形布局,将原本在屏幕外部的布局显示到屏幕内部。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号