图布局的实现方法及装置与流程

文档序号:18104389发布日期:2019-07-06 11:33阅读:197来源:国知局
图布局的实现方法及装置与流程

本说明书一个或多个实施例涉及数据处理技术领域,尤其涉及一种图布局的实现方法及装置。



背景技术:

在相关技术中,基于信息技术可视化的发展,通过图(graph)布局算法对散乱的节点进行处理,可以更加清晰地呈现出节点之间的拓扑关系,以便于实施相关的观察和分析等操作。



技术实现要素:

有鉴于此,本说明书一个或多个实施例提供一种图布局的实现方法及装置。

为实现上述目的,本说明书一个或多个实施例提供技术方案如下:

根据本说明书一个或多个实施例的第一方面,提出了一种图布局的实现方法,包括:

获取初始拓扑节点,所述初始拓扑节点的初始布局位置已确定,且所述初始拓扑节点按照相互之间的关联关系形成初始关系连线;

当存在新增拓扑节点时,根据所述新增拓扑节点与所述初始拓扑节点之间的关联关系,确定所述新增拓扑节点的初始布局位置,以使所述新增拓扑节点与所述初始拓扑节点之间的新增关系连线分离于所述初始关系连线。

根据本说明书一个或多个实施例的第二方面,提出了一种图布局的实现方法,包括:

获取初始拓扑节点,所述初始拓扑节点的初始布局位置已确定;其中,所述初始拓扑节点按照相互之间的关联关系形成初始关系连线,且所述初始关系连线之间相互分离;

通过图布局算法将所述初始拓扑节点布局为相应的关系网络图。

根据本说明书一个或多个实施例的第三方面,提出了一种图布局的实现装置,包括:

获取单元,获取初始拓扑节点,所述初始拓扑节点的初始布局位置已确定,且所述初始拓扑节点按照相互之间的关联关系形成初始关系连线;

确定单元,当存在新增拓扑节点时,根据所述新增拓扑节点与所述初始拓扑节点之间的关联关系,确定所述新增拓扑节点的初始布局位置,以使所述新增拓扑节点与所述初始拓扑节点之间的新增关系连线分离于所述初始关系连线。

根据本说明书一个或多个实施例的第四方面,提出了一种图布局的实现装置,包括:

获取单元,获取初始拓扑节点,所述初始拓扑节点的初始布局位置已确定;其中,所述初始拓扑节点按照相互之间的关联关系形成初始关系连线,且所述初始关系连线之间相互分离;

计算单元,通过图布局算法将所述初始拓扑节点布局为相应的关系网络图。

附图说明

图1是一示例性实施例提供的一种图布局系统的架构示意图。

图2是一示例性实施例提供的一种图布局的实现方法的流程图。

图3是一示例性实施例提供的另一种图布局的实现方法的流程图。

图4是一示例性实施例提供的一种划分连通子图的示意图。

图5-10是一示例性实施例提供的一种为新增拓扑节点选取初始布局位置的示意图。

图11是一示例性实施例提供的一种电子设备的结构示意图。

图12是一示例性实施例提供的一种图布局的实现装置的框图。

图13是一示例性实施例提供的另一种图布局的实现装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。

需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。

图1是一示例性实施例提供的一种图布局系统的架构示意图。如图1所示,该系统可以包括服务器11、网络12、若干电子设备,比如手机13、pc14等。

服务器11可以为包含一独立主机的物理服务器,或者该服务器11可以为主机集群承载的虚拟服务器,或者该服务器11可以为云服务器。在运行过程中,服务器11可以运行某一应用的服务器侧的程序,以实现该应用的相关业务功能,比如实现本说明书的图布局方案。

手机13、pc14只是可以使用的部分类型的电子设备。实际上,用户显然还可以使用诸如下述类型的电子设备:平板设备、笔记本电脑、掌上电脑(pdas,personaldigitalassistants)、可穿戴设备(如智能眼镜、智能手表等)等,本说明书一个或多个实施例并不对此进行限制。在运行过程中,该电子设备可以运行某一应用的客户端侧的程序,以实现该应用的相关业务功能,比如实现本说明书的图布局方案。

在一实施例中,本说明书的图布局方案可以单独应用于上述的服务器11,或者单独应用于上述的手机13或pc14等电子设备。在另一实施例中,上述的服务器11可以运行有应用的服务端、上述的手机13或pc14等电子设备可以运行有应用的客户端,而手机13或pc14等电子设备可以通过网络12与服务器11建立连接,使得上述的客户端与服务端之间可以通过该网络12实现交互,从而实现本说明书的图布局方案。举例而言,该网络52可以包括公共交换电话网络(publicswitchedtelephonenetwork,pstn)和因特网。

图2是一示例性实施例提供的一种图布局的实现方法的流程图。如图2所示,该方法可以包括以下步骤:

步骤202,获取初始拓扑节点,所述初始拓扑节点的初始布局位置已确定,且所述初始拓扑节点按照相互之间的关联关系形成初始关系连线。

在一实施例中,通过对原始数据进行可视化映射,可以获得相应的可视化的数据节点,即上述的初始拓扑节点;例如,当第一原始数据对应于第一初始拓扑节点、第二原始数据对应于第二初始拓扑节点时,基于第一原始数据与第二原始数据之间的关联关系,可以在相应的第一初始拓扑节点与第二初始拓扑节点之间形成可视化连线,即上述的初始关系连线。

在一实施例中,每一初始拓扑节点可以对应于单个原始数据,或者对应于多个(如一组或多组)原始数据,本说明书并不对此进行限制。

在一实施例中,每一初始拓扑节点可与其他的一个或多个初始拓扑节点之间形成初始关系连线,本说明书并不限制每一初始拓扑节点对应的初始关系连线的数量。

步骤204,当存在新增拓扑节点时,根据所述新增拓扑节点与所述初始拓扑节点之间的关联关系,确定所述新增拓扑节点的初始布局位置,以使所述新增拓扑节点与所述初始拓扑节点之间的新增关系连线分离于所述初始关系连线。

在一实施例中,当所述新增拓扑节点与特定初始拓扑节点相关联时,确定所述特定初始拓扑节点对应的连通节点集合,所述连通节点集合包含所述特定初始拓扑节点以及与所述特定初始拓扑节点直接或间接形成初始关系连线的初始拓扑节点;确定所述连通节点集合中包含的所有初始拓扑节点对应的第一重心位置,以及所述特定初始拓扑节点对应的第二重心位置,其中所述新增拓扑节点的初始布局位置位于所述第一重心位置向所述第二重心位置的连线的延长线上。

在一实施例中,除了使得新增拓扑节点的初始布局位置位于所述第一重心位置向所述第二重心位置的连线的延长线上,还可以确定所述连通节点集合中包含的所有初始拓扑节点对应的集合边界,其中所述新增拓扑节点的初始布局位置位于所述集合边界之外。其中,所述集合边界可以由所述连通节点集合中包含的所有初始拓扑节点对应的最小外包图形确定,例如该最小外包图形可以包括最小外包矩形(minimumboundingrectangle,简称mbr)、最小包围圆等,本说明书并不对此进行限制。

在一实施例中,当不存在新增拓扑节点时,可以通过图布局算法将所述初始拓扑节点布局为相应的关系网络图。

在一实施例中,通过将新增关系连线分离于初始关系连线,即新增关系连线与初始关系连线之间相互分离、不交叉,即便上述的初始拓扑节点、新增拓扑节点等对应于随机的通用性数据结构,在基于图布局算法生成相应的关系网络图时,仍然可以确保极大地降低该关系网络图中的拓扑节点之间的关系连线发生交叉的概率,并且不会破坏拓扑节点之间的关系连线的结构和信息,从而有效地提升了关系网络图的布局效果,有助于提升用户的阅读效率和阅读质量。

在一实施例中,所述图布局算法可以包括:力导向(force-directed;或称为,力导向布局:force-directedlayout)算法;在其他实施例中,本说明书的技术方案还可以适用于其他任意类型的图布局算法,均可以降低本说明书并不对此进行限制。

图3是一示例性实施例提供的另一种图布局的实现方法的流程图。如图3所示,该方法可以包括以下步骤:

步骤302,获取初始拓扑节点,所述初始拓扑节点的初始布局位置已确定;其中,所述初始拓扑节点按照相互之间的关联关系形成初始关系连线,且所述初始关系连线之间相互分离。

在一实施例中,通过对原始数据进行可视化映射,可以获得相应的可视化的数据节点,即上述的初始拓扑节点;例如,当第一原始数据对应于第一初始拓扑节点、第二原始数据对应于第二初始拓扑节点时,基于第一原始数据与第二原始数据之间的关联关系,可以在相应的第一初始拓扑节点与第二初始拓扑节点之间形成可视化连线,即上述的初始关系连线。

在一实施例中,每一初始拓扑节点可以对应于单个原始数据,或者对应于多个(如一组或多组)原始数据,本说明书并不对此进行限制。

在一实施例中,每一初始拓扑节点可与其他的一个或多个初始拓扑节点之间形成初始关系连线,本说明书并不限制每一初始拓扑节点对应的初始关系连线的数量。

步骤304,通过图布局算法将所述初始拓扑节点布局为相应的关系网络图。

在一实施例中,通过将新增关系连线分离于初始关系连线,即新增关系连线与初始关系连线之间相互分离、不交叉,即便上述的初始拓扑节点对应于随机的通用性数据结构,在基于图布局算法生成相应的关系网络图时,仍然可以确保极大地降低该关系网络图中的拓扑节点之间的关系连线发生交叉的概率,并且不会破坏拓扑节点之间的关系连线的结构和信息,从而有效地提升了关系网络图的布局效果,有助于提升用户的阅读效率和阅读质量。

在一实施例中,所述图布局算法可以包括:力导向(force-directed;或称为,力导向布局:force-directedlayout)算法;在其他实施例中,本说明书的技术方案还可以适用于其他任意类型的图布局算法,均可以降低本说明书并不对此进行限制。

为了便于理解,下面以若干待布局的拓扑节点为例,对本说明书的图布局方案进行详细描述。

图4是一示例性实施例提供的一种划分连通子图的示意图。在一实施例中,用户可以向设备输入如图4所示的初始关系图,比如该初始关系图可以包括拓扑节点a1、拓扑节点a2、拓扑节点a3、拓扑节点a4、拓扑节点b1、……拓扑节点b6等。

如图4所示,上述的拓扑节点a1至拓扑节点b6均为原始数据映射得到的可视化节点,且各个拓扑节点之间的连线表示相应的原始数据之间的关联关系;例如,当拓扑节点a1对应于原始数据1、拓扑节点a2对应于原始数据2时,如果原始数据1与原始数据2之间存在关联关系,该关联关系可以映射为拓扑节点a1与拓扑节点a2之间的连线。

根据各个拓扑节点之间的连线,上述初始关系图中的拓扑节点可以被划分为若干连通子图,每个连通子图内部的拓扑节点之间相互连通、不同连接子图包含的拓扑节点之间不连通,使得每个连通子图相当于初始关系图中独立的拓扑节点集合。例如图4所示,由于拓扑节点a1、拓扑节点a2、拓扑节点a3和拓扑节点a4之间相互连通,使得拓扑节点a1、拓扑节点a2、拓扑节点a3和拓扑节点a4构成了连通子图1;类似地,由于拓扑节点b1、拓扑节点b2、……、拓扑节点b6之间相互连通,使得拓扑节点b1、拓扑节点b2、……、拓扑节点b6构成了连通子图2;因此,图4所示的初始关系图可以被划分为连通子图1和连通子图2。

在图4所示的初始关系图的基础上,如果继续增加新的拓扑节点(即新增拓扑节点),并且该新增拓扑节点与初始关系图中的拓扑节点之间存在关联关系,需要在该新增拓扑节点与初始关系图中的拓扑节点之间增加相应的连线(即新增连线);相应地,本说明书的技术方案可以通过为该新增拓扑节点选取恰当的初始布局位置,从而确保该新增连线与初始关系图中的初始连线之间不存在交叉的情况。

下面以图4所示的连通子图2为例,详细说明为新增拓扑节点选取恰当的初始布局位置的过程。

图5-10是一示例性实施例提供的一种为新增拓扑节点选取初始布局位置的示意图。如图5所示,通过创建坐标系xy,在该坐标系xy中表示连通子图2中的拓扑节点b1~拓扑节点b6,比如拓扑节点b1的坐标为(x1,y1)、拓扑节点b2的坐标为(x2,y2)……拓扑节点b6的坐标为(x6,y6)。

针对连通子图2中的拓扑节点b1~拓扑节点b6,确定相应的重心g1(gx1,gy1),其中:gx1=(x1+x2+…+xi+…+xn)/n,gy1=(y1+y2+…+yi+…+yn)/n,且1≤i≤n;在图5所示的实施例中,n=6。

同时,根据连通子图2中的拓扑节点b1~拓扑节点b6对应的坐标,可以确定该连通子图2对应的最小外包矩形mnpq,且该最小外包矩形mnpq的四个顶点的坐标分别为m(xmin,ymax)、n(xmax,ymax)、p(xmax,ymin)、q(xmin,ymin),xmin=min[x1,x2,…,xi,…,xn]-α,ymin=min[y1,y2,…,yi,…,yn]-α,xmax=max[x1,x2,…,xi,…,xn]+α,ymax=max[y1,y2,…,yi,…,yn]+α,其中α为预定义的修正参数。

在一实施例中,新增拓扑节点可能与连通子图2中的多个拓扑节点之间存在关联。比如图6所示,假定新增拓扑节点b7与拓扑节点b3、拓扑节点b5存在关联,可以通过下述方式确定该新增拓扑节点b7对应的初始布局位置:

如图7所示,针对连通子图2中与该新增拓扑节点b7相关联的拓扑节点b3和拓扑节点b5,确定该拓扑节点b3与该拓扑节点b5之间的重心g2(gx2,gy2),其中gx2=(x3+x5)/2、gy2=(y3+y5)/2。然后,确定从重心g1向重心g2形成的连线g2g1,并在该连线g2g1的延长线上确定出位于最小外包矩形mnpq之外的点t(即点t位于射线g2g1上,且该点t位于最小外包矩形mnpq之外),该点t可以作为上述的新增拓扑节点b7的初始布局位置。

作为验证,在图8所示的更新后的连通子图2中,可以看到当新增拓扑节点b7被设置于上述的点t处时,拓扑节点b1~拓扑节点b7之间形成的所有连线均能够确保相互分离,而不会产生交叉现象。可见,基于上述方案确定出的初始布局位置,可以确保新增拓扑节点与初始关系图中的拓扑节点之间实现合理地初始布局,避免这些拓扑节点之间的连线产生交叉。

在一实施例中,新增拓扑节点可能仅与连通子图2中的单个拓扑节点之间存在关联。比如图9所示,假定新增拓扑节点b8与拓扑节点b5存在关联,可以通过下述方式确定该新增拓扑节点b8对应的初始布局位置:

如图9所示,针对连通子图2中与该新增拓扑节点b8相关联的拓扑节点b5,确定该拓扑节点b5之间的重心g3(gx3,gy3),其中gx3=x5、gy3=y5(即重心g3与拓扑节点b5重合)。然后,确定从重心g1向重心g3形成的连线g3g1,并在该连线g3g1的延长线上确定出位于最小外包矩形mnpq之外的点s(即点s位于射线g3g1上,且该点s位于最小外包矩形mnpq之外),该点s可以作为上述的新增拓扑节点b8的初始布局位置。

作为验证,在图10所示的更新后的连通子图2中,可以看到当新增拓扑节点b8被设置于上述的点s处时,拓扑节点b1~拓扑节点b8之间形成的所有连线均能够确保相互分离,而不会产生交叉现象。可见,基于上述方案确定出的初始布局位置,可以确保新增拓扑节点与初始关系图中的拓扑节点之间实现合理地初始布局,避免这些拓扑节点之间的连线产生交叉。

通过上述方式,可以依次对新增的拓扑节点确定出相应的初始布局位置,从而将这些新增的拓扑节点逐步添加至上述的初始关系图中,以对该初始关系图进行更新。当不存在需要新增的拓扑节点时,可认为完成对初始关系图的更新处理,可以采用图布局算法对该更新后的初始关系图进行处理,例如可以采用力导向算法对该初始关系图进行处理,以获得相应的关系网络图。

通过使得初始关系图中的拓扑节点之间产生的连线相互分离、避免交叉,使得基于图布局算法得到的关系网络图中,可以极大地降低线交叉的出现概率,从而有效地提升了关系网络图的可读性。并且,基于本说明书的技术方案,对于初始关系图中的拓扑节点对应的原始数据不存在数据结构上的特殊需求,即该技术方案可以适用于随机的通用性数据结构。同时,基于本说明书的技术方案不会对关系网络图中的连线关系造成结构或信息的破坏,以确保拓扑节点之间的关系完整性。

图11是一示例性实施例提供的一种电子设备的示意结构图。请参考图11,在硬件层面,该电子设备包括处理器1102、内部总线1104、网络接口1106、内存1108以及非易失性存储器1110,当然还可能包括其他业务所需要的硬件。处理器1102从非易失性存储器1110中读取对应的计算机程序到内存1108中然后运行,在逻辑层面上形成图布局的实现装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

请参考图12,在软件实施方式中,该图布局的实现装置可以包括:

获取单元1201,获取初始拓扑节点,所述初始拓扑节点的初始布局位置已确定,且所述初始拓扑节点按照相互之间的关联关系形成初始关系连线;

确定单元1202,当存在新增拓扑节点时,根据所述新增拓扑节点与所述初始拓扑节点之间的关联关系,确定所述新增拓扑节点的初始布局位置,以使所述新增拓扑节点与所述初始拓扑节点之间的新增关系连线分离于所述初始关系连线。

可选的,所述确定单元1202具体用于:

当所述新增拓扑节点与特定初始拓扑节点相关联时,确定所述特定初始拓扑节点对应的连通节点集合,所述连通节点集合包含所述特定初始拓扑节点以及与所述特定初始拓扑节点直接或间接形成初始关系连线的初始拓扑节点;

确定所述连通节点集合中包含的所有初始拓扑节点对应的第一重心位置,以及所述特定初始拓扑节点对应的第二重心位置,其中所述新增拓扑节点的初始布局位置位于所述第一重心位置向所述第二重心位置的连线的延长线上。

可选的,所述确定单元1202具体还用于:

确定所述连通节点集合中包含的所有初始拓扑节点对应的集合边界,其中所述新增拓扑节点的初始布局位置位于所述集合边界之外。

可选的,所述集合边界由所述连通节点集合中包含的所有初始拓扑节点对应的最小外包矩形确定。

可选的,还包括:

计算单元1203,当不存在新增拓扑节点时,通过图布局算法将所述初始拓扑节点布局为相应的关系网络图。

可选的,所述图布局算法包括:力导向算法。

请参考图13,在软件实施方式中,该图布局的实现装置可以包括:

获取单元1301,获取初始拓扑节点,所述初始拓扑节点的初始布局位置已确定;其中,所述初始拓扑节点按照相互之间的关联关系形成初始关系连线,且所述初始关系连线之间相互分离;

计算单元1302,通过图布局算法将所述初始拓扑节点布局为相应的关系网络图。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

在一个典型的配置中,计算机包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1