实现数据结构可视化的方法、装置和电子设备与流程

文档序号:14940912发布日期:2018-07-13 20:44阅读:197来源:国知局

本申请涉及信息可视化领域,更具体地涉及实现数据结构可视化的方法、装置和电子设备。



背景技术:

目前在通常采用d3.js和可缩放矢量图形(scalablevectorgraphics,svg)在前端实现关系型数据结构的图形化展示及渲染。这种实现方式中,首先在后台将关系型数据结构经过一定的业务逻辑处理后,将关系型数据结构转换为节点和边的集合。之后通过异步或同步的方式将数据加载到前端,并通过d3重力图的方式对节点和边的数据进行初始化。然后通过svg的画布功能和画图功能,将点和边生成相应的图形,渲染并呈现在浏览器端。最后通过d3重力图布局算法(迭代计算),将节点和边的相应图形分布在画布中的合适位置,最终将关系型数据呈现为一张形如网络结构的图形。

但是,在大数据场景下,由于数据量很大,采用现有技术的上述方法将会导致关系型数据结构的图形在前端页面布局需要很长的时间甚至无法成功布局的问题,影响关系型数据结构的可视化效率。

因此,需求一种实现数据结构可视化的方法,来克服上述技术问题。



技术实现要素:

本申请的目的在于提供一种实现数据可视化的方法、装置和电子设备,能够降低关系型数据结构的图形在前端页面布局所需时间,提高关系型数据结构的可视化效率。

为解决上述技术问题,本申请实施例是这样实现的:

第一方面,提供了一种实现数据结构可视化的方法,包括:

对关系型数据结构进行处理得到节点集合和边集合;

基于所述节点集合中的节点的出度,确定所述边集合中的待布局边,所述待布局边为需要在布局过程中确定相应的图形在画布中的位置的边;

基于所述节点集合中的节点和所述待布局边,向用户呈现所述关系型数据结构相关的可视化图形。

第二方面,提供一种实现数据结构可视化的装置,包括:

第一处理单元,对关系型数据结构进行处理得到节点集合和边集合;

第二处理单元,基于所述节点集合中的节点的出度,确定所述边集合中的待布局边,所述待布局边为需要在布局过程中确定相应的图形在画布中的位置的边;

图形显示单元,基于所述节点集合中的节点和所述待布局边,向用户呈现所述关系型数据结构相关的可视化图形。

第三方面,提供一种电子设备,包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使用所述处理器执行以下操作:

对关系型数据结构进行处理得到节点集合和边集合;

基于所述节点集合中的节点的出度,确定所述边集合中的待布局边,所述待布局边为需要在布局过程中确定相应的图形在画布中的位置的边;

基于所述节点集合中的节点和所述待布局边,向用户呈现所述关系型数据结构相关的可视化图形。

第四方面,提供一种计算机可读介质,所述计算机可读介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:

对关系型数据结构进行处理得到节点集合和边集合;

基于所述节点集合中的节点的出度,确定所述边集合中的待布局边,所述待布局边为需要在布局过程中确定相应的图形在画布中的位置的边;

基于所述节点集合中的节点和所述待布局边,向用户呈现所述关系型数据结构相关的可视化图形。

由以上本申请实施例提供的技术方案可见,本申请实施例基于关系型数据结构处理得到的节点集合中的节点的出度,确定关系型数据结构处理得到的边集合中的待布局边,并基于节点集合中的节点和待布局边,向用户呈现关系型数据结构相关的可视化图形,其中,待布局边为需要在布局过程中确定相应的图形在画布中的位置的边,即在布局过程中只需要将所有节点相应的图形以及待布局边相应的图形布局在画布中,不需将所有节点相应的图形和所有边相应的图形全部布局在画布中,能够在数据量较大时实现图形位置的快速布局,降低关系型数据结构的图像在前端页面布局所需时间,提高关系型数据结构的可视化效率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是根据本申请的一个实施例的实现数据结构可视化的方法的示意性流程图。

图2是根据本申请一个实施例的确定待布局边的方法的示意图。

图3是根据本申请一个实施例的map结构的示意图。

图4是根据本申请一个实施例的全局缩略图的示意图。

图5是根据本申请一个实施例的子图的示意图。

图6是根据本申请一个具体实施例的构建map结构的方法的示意图。

图7是根据本申请一个具体实施例的生成全局缩略图的方法的示意图。

图8是根据本申请一个实施例的生成子图的方法的示意图。

图9是根据本申请实施例的电子设备的结构框图。

图10是根据本申请实施例的实现数据结构可视化的装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

图1是根据本申请的一个实施例的实现数据结构可视化的方法的流程图。图1的方法由实现数据结构可视化的装置执行。

如图1所示出的,在s102处,对关系型数据结构进行处理得到节点集合和边集合。

具体地,节点集合中的节点中的数据包括:节点的属性值、节点的唯一标识id、节点的元数据信息。边集合中的边中的数据包括:源节点id、目标节点id、边属性、边的元数据信息。可选地,节点集合中的点和边集合中的边采用列表结构存储数据。

可以理解的是,在s102处,对关系型数据结构进行处理得到节点集合和边集合,实质上是将关系型数据结构转换为包括节点集合和边集合的数据结构。

在s104处,基于所述节点集合中的节点的出度,确定所述边集合中的待布局边,所述待布局边为需要在布局过程中确定相应的图形在画布中的位置的边。

需要说明的是,本申请实施例中的布局过程指的是通过布局算法(例如,d3重力图布局算法),确定节点相应的图形和边相应的图形在画布中的位置的过程,即通过布局算法将节点相应的图形和边相应的图形分布在画布中的合适位置的过程。

可以理解的是,本申请实施例中的边集合中除待布局边之外的其他边不需要在布局过程中确定相应的图形在画布中的位置,这些处待布局边之外的边可以在完成对节点相应的图形和待布局边相应的图形的布局之后,直接在画布中画出来。

可选地,在一些实施例中,基于节点集合中的节点的出度,确定所述边集合中的待布局边,包括:对于所述节点集合中相关联的任意两个节点,如果所述两个节点中至少一个节点的出度大于或等于出度阈值,则将所述两个节点中出度较小的节点与其他节点之间的边作为裁剪边集合中的边;将所述边集合中除所述裁剪边集合中的边之外的边确定为所述待布局边。采用这种方式确定待布局边能够使得最终呈现的图形整体呈现为多中心点的聚类图像,方便用户进行聚类分析。

可选地,在另一些实施例中,基于节点集合中的节点的出度,确定所述边集合中的待布局边,包括:对所述节点集合中相关联的任意两个节点。如果所述两个节点的出度均小于或等于出度阈值,则将所述两个节点之间的边确定为所述待布局边的一部分;以及,对于所述节点集合中相关联的任意两个节点,如果所述两个节点中至少一个节点的出度大于或等于所述出度阈值,则将所述两个节点中出度较大的节点与其他节点之间的边确定为所述待布局边的一部分。

举例来说,如图2所示出的,节点1的关联节点包括节点2、节点3、节点4、节点5和节点6,节点7的关联节点包括节点8、节点9、节点10、节点11和节点12,节点2的关联节点包括节点1和节点9,节点6的关联节点包括节点1和节点8,节点8的关联节点包括节点6和节点7,节点9的关联节点包括节点2和节点7。以出度阈值为4为例,节点1的出度为5,节点2的出度为1,则将节点2与节点9之间的边(图中虚线所示)确定为裁剪边集合中的边。节点1的出度为5,节点6的出度为1,则将节点6和节点8之间的边(图中虚线所示)确定为裁剪边集合中的边。将节点1与节点2之间的边、节点1与节点3之间的边、节点1与节点4之间的边、节点1与节点5之间的边、节点1与节点6之间的边,以及节点7与节点8之间的边、节点7与节点9之间的边、节点7与节点10之间的边、节点7与节点11之间的边、节点7与节点12之间的边确定为待布局边。

在本申请实施例中,可以基于节点集合和边集合的数据结构确定相关联的任意两个节点的出度。进一步地,可以将节点集合和边集合的数据结构进行转换,转换为映射集(map)结构,如图3所示,新的数据结构包括点map、边map和图索引,之后根据图索引确定节点集合中相关联的节点的出度。

也就是说,图1所示的方法还包括:根据所述节点集合和所述边集合,确定点map、边map和图索引,其中,所述点map用于以键值对(key-value)的形式存储节点集合中的节点中的数据,所述边map用于以键值对的形式存储边集合中的边中的数据,所述图索引用于以键值对的形式存储所述节点集合中的节点的标识、节点的出度、节点的入度、节点的被关联点的标识以及裁剪边集合中的边相关的节点的标识。后续将结合附图详细描述根据本申请一个具体实施例的构建map结构的方法。

在s106处,基于所述节点集合中的节点和所述待布局边,向用户呈现所述关系型数据结构相关的可视化图形。

可以理解的是,基于节点集合中的节点和待布局边,向用户呈现关系型数据结构相关的可视化图形,实际是指在布局过程中将节点集合中的节点相应的图形和待布局边相应的图形布局在画布的合适位置,并根据布局的结果向用户呈现可视化图形。

可选地,在一些实施例中,基于所述节点集合中的节点和所述待布局边,向用户呈现所述关系型数据结构相关的可视化图形,包括:基于所述节点集合中的节点和所述待布局边,生成全局缩略图,如图4所示出的,所述全局缩略图中包括所述有边界的svg画布、布局在所述有边界的画布中的所述节点集合中的节点相应的图像和可移动的选择框,所述可移动的选择框用于用户选择所述节点集合中的节点中的至少一个目标节点;向用户呈现所述全局缩略图。

具体地,在一些实施例中,在已经建立map结构的情况下,所述基于所述节点集合中的节点和所述待布局边,生成全局缩略图包括:根据所述图索引从所述点map中获取所述点集合中的节点中的数据;根据所述图索引从所述边map中获取所述待布局边中的数据;基于所述节点集合中的节点中的数据和所述待布局边中的数据,生成所述全局缩略图。通过图索引能够快速获取到节点中的数据和待布局边中的数据,能够提高关系型数据结构的可视化效率。

具体地,在一些实施例中,基于节点集合中的数据和所述待布局边中的数据生成全局缩略图,包括:基于所述节点集合中的节点中的数据,生成所述节点集合中的节点相应的图形;基于所述待布局边中的数据,生成所述待布局边相应的图形;将所述节点集合中的节点相应的图形和所述待布局边相应的图形在所述有边界的svg画布中的位置,生成所述全局缩略图。

可以理解的是,虽然在布局过程中确定了节点相应的图形和待布局边相应的图形在画布中的位置,但是在向用户显示的全局缩略图中只包括节点相应的图像,而不包括待布局边相应的图形,由此能够方便用户清晰的看出关系型数据结构的整体分布情况。

进一步地,在一些实施例中,在基于所述节点集合中的数据,生成所述节点集合中的节点相应的图形之后,图1所示的方法还包括:基于所述节点集合中的节点中的数据,渲染所述节点集合中的节点相应的图形。例如,可以基于节点集合中的节点中的数据,将不同节点相应的图形渲染成具有不同的填充颜色图形,或者渲染成具有不同背景的图形。

可选地,在一些实施例中,对可移动的选择框进行渲染,将可移动的选择框渲染成具有颜色的选择框。

需要说明的是,虽然在全局缩略图中并不包括待布局边相应的图形,但是在基于待布局边中的数据生成待布局边相应的图形之后,可以进一步基于待布局边中的数据对待布局边相应的图形进行渲染。当然也可以不对待布局边相应的图形进行渲染,本申请实施例对此不作限定。后续将结合附图详细描述根据本申请一具体实施例的生成全局缩略图的方法。

在本申请实施例中,可选地,图1所示的方法还包括:基于用户通过所述可移动的选择框选择的至少一个目标节点的标识和所述图索引,确定所述节点集合中的节点中需要在子图中呈现给用户的节点;基于所述至少一个目标节点的标识和所述图索引,确定所述待布局边中与所述至少一个目标节点相关且需要在所述子图中呈现的至少一条目标边;确定所述需要在子图中呈现给用户的节点相应的图形和所述至少一条目标边相应的图像在所述有边界的svg画布中的位置;基于所述需要在子图中呈现给用户的节点相应的图形和所述至少一条目标边相应的图像在所述有边界的svg画布中的位置,生成并向用户呈现所述子图。

也就是说,如果用户通过可移动的选择框选择节点集合中的一部分节点时,根据用户选择的这部分节点的id确定需要在子图中呈现给用户的节点以及待布局边中需要在子图中呈现给用户的边,并对需要在子图中呈现的节点和边进行布局,基于布局的结果生成呈现给用户的子图。

需要说明的是,需要在子图中显示的节点不仅包括被可移动的选择框选中的节点,还可以包括其他节点,其他节点的确定方法可以根据实际需要确定,例如,可以包括与被选择框选中的节点之间的边被选择框截断的节点,或者包括由所述可移动的选择框导致的孤立点,但本申请实施例并不限于此。

具体地,在一些实施例中,在确定所述需要在子图中呈现给用户的节点相应的图形和所述至少一条目标边相应的图形在所述有边界的svg画布中的位置之前,图1所示的方法还包括:根据所述至少一个目标节点的标识和所述图索引,确定所述需要在子图中呈现给用户的节点的类型,其中,节点的类型用于表征节点在所述有边界的svg画布中的位置与所述可移动的选择框的位置之间的关系;根据所述需要在子图中呈现给用户的节点的类型,生成所述需要在子图中呈现给用户的节点相应的图形;生成所述至少一个目标边相应的图形。

可选地,在一些实施例中,需要在子图中呈现给用户的节点中类型不同的节点相应的图形的形状不同。举例来说,如图5所示的,节点1、节点2、节点6、节点7、节点8、节点9、节点10、节点11和节点12为被可移动的选择框选中的节点,可以看作是正常点。并且根据节点1的id和图索引确定出节点3、节点4和节点5为孤立点,节点3、节点4和节点5需要在子图中显示,进一步确定出节点1为临界点,则生成的节点2、节点6、节点7、节点8、节点9、节点10、节点11和节点12相应的图形为圆,而节点1相应的图形为矩形,节点3、节点4和节点5相应的图形为椭圆。可以看出,在本申请实施例中,没有被可移动的选择框选中的孤立点也会在子图中呈现,能够避免从全局缩略图中选择一部分节点带来的数据失真。

进一步地,在一些实施例中,在生成所述需要在子图中呈现给用户的节点相应的图形之后,渲染所述需要在子图中呈现给用户的节点相应的图形;在生成所述至少一条目标边相应的图形之后,渲染所述至少一条目标边相应的图形。

可选地,在一些实施例中,所述渲染所述需要在子图中呈现给用户的节点相应的图形,包括:若所述需要在子图中呈现给用户的节点中包括临界节点,则根据所述临界节点中的数据、所述待布局边中与所述临界点相关联的边中布局位置在所述可移动的选择框范围之外的边中的数据和与所述临界点相关联的节点中未被所述可移动的选择框选中的节点中的数据,渲染所述临界点。或者可以理解为,对于临界节点可以将其关联边及一度节点的信息合并到该临界点上,由此避免从全局缩略图中选择一部分节点带来的数据失真。

并且根据本申请实施例的方法,通过可移动的选择框能够实现基于全局缩略图做局部精化分析,避免数据分析不全面、数据准确性失真等问题。

可选地,在一些实施例中,图1所示的方法还包括:根据所述至少一个目标节点的标识和所述图索引,确定与所述至少一个目标节点相关联的边中是否存在属于裁剪边集合的边;其中,所述基于所述需要在子图中呈现给用户的节点相应的图像和所述至少一条目标边相应的图形在所述有边界的svg画布中的位置,生成所述子图,包括:若所述与所述至少一个目标节点相关的边中存在属于所述裁剪边集合中的边,则基于所述需要在子图中呈现给用户的节点相应的图形和所述至少一条目标边相应的图形,以及所述与所述至少一个目标节点相关的边中属于所述裁剪边集合的边生成所述子图。

具体地,在一些实施例中,在确定好需要在子图中呈现给用户的节点相应的图形和至少一条目标边相应的图形在画布中的位置之后,如果与至少一个目标节点相关的边中存在属于裁剪边集合的边,则生成或者说画出与至少一个目标节点相关的边中属于裁剪边集合的边。后续将结合附图详细描述根据本申请一个具体实施例的生成子图的方法的示意图。

下面将结合图6详细描述根据本申请一个实施例的构建map结构的方法。图6所示的方法可由实现数据结构可视化的装置执行。

如图6所示出的,在s202处,循环边集合,构建边map。

具体地,在一些实施例中,点map中的key为节点的唯一id,点map中的value为与节点相对应的数据。

在s204处,循环点集合,构建点map。

具体地,在一些实施例中,边map中的key为边的唯一id,边map中的value为与边相对应的数据,

在s206处,计算并存储节点的出度、入度、被关联点的唯一id,以构建图索引。

在s208处,判断节点集合中相关联的任意两个节点中至少一个节点的出度大于或等于出度阈值。

在s210处,如果相关联的任意两个节点中至少一个节点的出度大于或等于阈值,将两个节点中出度较小的节点与其他节点之间的边作为裁剪边集合中的边。

在s212处,将裁剪边集合中的边相关的节点的唯一id存储到图索引中。

具体地,在一些实施例中,在s212处的图索引中的key为节点的唯一id,图索引中的value为节点的出度、节点的入度、节点的被关联点的唯一id的集合、裁剪边集合中的边相关的节点的唯一id的集合。本申请实施例中所涉及到的图索引指的在s212处得到的图索引。

需要说明的是,虽然上述实施例虽然为了表述方便,将s204置于s206之后。但是,根据实际情况,这两个步骤的执行顺序可以调换,即先,循环点集合,构建点map,再循环边集合,构建边map。

下面将结合图7详细描述根据本申请一个实施例的生成全局缩略图的方法。图7所示的方式可由实现数据结构可视化的装置执行。

如图7所示出的,在s302处,初始化有边界的svg画布。

在s304处,在svg画布上生成每个节点相应的图形。

可以理解的是,在生成每个节点相应的图形之前,需要基于前文中所述的图索引从点map中获取每个节点中的数据,然后基于节点中的数据,在svg画布上生成节点相应的图形。

可选地,在s304处,在生成每个节点相应的图形之后,可以对每个节点相应的图形进行渲染。

在s306处,在svg画布上生成待布局边相应的图形。

可选地,在s306处,在生成待布局边相应的图形之后,可以对待布局边相应的图形进行渲染。

在s308处,通过d3重力布局算法,将节点相应的图形和待布局边相应的图形布局在svg画布的合适位置。

由于在s308处只需要对所有节点相应的图形和待布局边相应的图形进行布局,使得布局速度非常快,具有较高的可视化显示效率。

在s310处,在svg画布上生成可移动的选择框。

可选地,在s310处,在svg画布上生成可移动的选择框之后对选择框进行渲染。

需要说明的是,虽然在s308处将节点相应的图形和待布局边相应的图形进行布局,但在最后向用户呈现的全局缩略图中不需要呈现待布局边相应的图形。

下面将结合图8详细描述根据本申请一个实施例的生成子图的方法。图8所示的方法可由实现数据结构可视化的装置执行。

如图8所示出的,在s402处,确定用户通过可移动的选择框选中的节点。

在s404处,基于被选中的节点的id和图索引,确定需要在子图中呈现给用户的节点。

可选地,可以进一步确定需要在子图中呈现给用户的节点的类型,节点的类型可以包括图1所示的方法中的类型,即包括正常点、临界点和孤立点。

在s406处,基于被选中的节点的id和图索引,确定待布局边中与被选中的节点相关且需要在子图中呈现的边。

在s408处,在svg画布中生成需要在子图中呈现给用户的节点相应的图形。

可选地,在s408处,生成需要在子图中呈现给用户的节点相应的图形之后,对需要在子图中呈现给用户的节点相关的图形进行渲染。

可选地,如果在s404处,确定需要在子图中呈现给用户的节点的类型,则在s408处,可以针对不同类型的节点生成不同的图形。

在s410处,在svg画布中生成待布局边中与被选中的节点相关且需要在子图中呈现的边相应的图形。

在s412处,采用d3重力布局算法,将节点相应的图形和待布局边相应的图形布局在svg画布的合适位置。

在s414处,确定与被选中点相关的边中是否存在属于裁剪边集合的边。

在s416处,若存在,则在svg画布中画出与被选中的点相关的边中属于裁剪边集合的边。

以上结合图1至图8详细描述了根据本申请实施例的实现数据结构可视化的方法。下面将结合图9详细描述根据本申请实施例的电子设备。参考图9,在硬件层面,电子设备包括处理器,可选地,包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-accessmemory,ram),也可能还包括非易失性存储器(non-volatilememory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。

处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是工业标准体系结构(industrystandardarchitecture,isa)总线、外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。

处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成实现数据结构可视化的装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:

对关系型数据结构进行处理得到节点集合和边集合;

基于所述节点集合中的节点的出度,确定所述边集合中的待布局边,所述待布局边为需要在布局过程中确定相应的图形在画布中的位置的边;

基于所述节点集合中的节点和所述待布局边,向用户呈现所述关系型数据结构相关的可视化图形。

上述如本申请图1所示实施例揭示的实现数据结构可视化的装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。

该电子设备还可执行图6至图8的方法,并实现数据结构可视化的装置在图6至图8所示实施例的功能,本申请实施例在此不再赘述。

当然,除了软件实现方式之外,本申请的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图1所示实施例的方法,并具体用于执行以下方法:

对关系型数据结构进行处理得到节点集合和边集合;

基于所述节点集合中的节点的出度,确定所述边集合中的待布局边,所述待布局边为需要在布局过程中确定相应的图形在画布中的位置的边;

基于所述节点集合中的节点和所述待布局边,向用户呈现所述关系型数据结构相关的可视化图形。

图10是本申请的一个实施例的实现数据结构可视化的装置的结构示意图。请参考图10,在一种软件实施方式中,实现数据结构可视化的装置1000可包括:第一处理单元1001、第二处理单元1002、图形显示单元1003,其中,

第一处理单元1001,对关系型数据结构进行处理得到节点集合和边集合;

第二处理单元1002,基于所述节点集合中的节点的出度,确定所述边集合中的待布局边,所述待布局边为需要在布局过程中确定相应的图形在画布中的位置的边;

图形显示单元1003,基于所述节点集合中的节点和所述待布局边,向用户呈现所述关系型数据结构相关的可视化图形。

根据本申请实施例实现数据可视化的装置,能够基于关系型数据结构处理得到的节点集合中的节点的出度,确定关系型数据结构处理得到的边集合中的待布局边,并基于节点集合中的节点和待布局边,向用户呈现关系型数据结构相关的可视化图形,其中,待布局边为需要在布局过程中确定相应的图形在画布中的位置的边,即在布局过程中只需要将所有节点相应的图形以及待布局边相应的图形布局在画布中,不需将所有节点相应的图形和所有边相应的图形全部布局在画布中,能够在数据量较大时实现图形位置的快速布局,降低关系型数据结构的图像在前端页面布局所需时间,提高关系型数据结构的可视化效率。

可选地,作为一个实施例,所述第二处理单元1002:

对于所述节点集合中相关联的任意两个节点,如果所述两个节点中至少一个节点的出度大于或等于出度阈值,则将所述两个节点中出度较小的节点与其它节点之间的边作为裁剪边集合中的边;

将所述边集合中除所述裁剪边集合中的边之外的边确定为所述待布局边。

可选地,作为一个实施例,所述第二处理单元1002:

对于所述节点集合中相关联的任意两个节点,如果所述两个节点的出度均小于或等于出度阈值,则将所述两个节点之间的边确定为所述待布局边的一部分;以及,

对于所述节点集合中相关联的任意两个节点,如果所述两个节点中至少一个节点的出度大于或等于所述出度阈值,则将所述两个节点中出度较大的节点与其它节点之间的边确定为所述待布局边的一部分。

第二处理单元1002采用本申请实施例的确定待布局边的方法,能够使得最终呈现的图形呈现为多中心点的聚类图形,方便用户进行聚类分析。

可选的,作为一个实施例,所述图形显示单元1003:

基于所述节点集合中的节点和所述待布局边,生成全局缩略图,所述全局所略图中包括有边界的可伸缩矢量图形svg画布、布局在所述有边界的svg画布中的所述节点集合中的节点相应的图形和可移动的选择框,所述可移动的选择框用于用户选择所述节点集合中的节点中的至少一个目标节点;

向用户呈现所述全局缩略图。

通过向用户呈现全局缩略图的方法,能够方便用户根据全局缩略图清晰的看出关系型数据结构的整体分布情况。

可选地,所述第一处理单元1001:

根据所述节点集合和所述边集合,确定点映射集map、边map和图索引,其中,所述点map用于以键值对的形式存储所述节点集合中的节点中的数据,所述边map用于以键值对的形式存储所述边集合中的边中的数据,所述图索引用于以键值对的形式存储所述节点集合中的节点的标识、节点的出度、节点的入度、节点的被关联点的标识以及与所述裁剪边集合中的边相关的节点的标识;

其中,所述第二处理单元1002:

根据所述图索引确定所述节点集合中相关联的任意两个节点的出度。

可选地,作为一个实施例,所述图形显示单元1003:

基于所述图索引从所述点map中获取所述点集合中的节点中的数据;

基于所述图索引从所述边map中获取所述待布局边中的数据;

基于所述节点集合中的节点中的数据和所述待布局边中的数据生成所述全局缩略图。

基于图索引能够快速获取节点和边中的数据,提高数据结构可视化的分析效率和可视化效率。

可选地,作为一个实施例,所述图形显示单元1003:

基于所述节点集合中的节点中的数据,生成所述节点集合中的节点相应的图形;

基于所述待布局边中的数据,生成所述待布局边相应的图形;

将所述节点集合中的节点相应的图形和所述待布局边相应的图形布局在所述有边界的svg画布中的相应位置;

基于所述节点集合中的节点相应的图形和所述待布局边相应的图形在所述有边界的svg画布中的位置,生成所述全局缩略图。

可选地,作为一个实施例,所述图形显示单元1003:

基于所述节点集合中的节点中的数据,渲染所述节点集合中的节点相应的图形。

可选地,作为一个实施例,所述图形显示单元1003:

基于用户通过所述可移动的选择框选择的至少一个目标节点的标识和所述图索引,确定所述节点集合中的节点中需要在子图中呈现给用户的节点;

基于所述至少一个目标节点的标识和所述图索引,确定所述待布局边中与所述至少一个目标节点相关且需要在所述子图中呈现的至少一条目标边;

确定所述需要在子图中呈现给用户的节点相应的图形和所述至少一条目标边相应的图形在所述有边界的svg画布中的位置;

基于所述需要在子图中呈现给用户的节点相应的图形和所述至少一条目标边相应的图形在所述有边界的svg画布中的位置,生成并向用户呈现所述子图。

可选地,作为一个实施例,所述图形显示单元1003:

根据所述至少一个目标节点的标识和所述图索引,确定所述需要在子图中呈现给用户的节点的类型,其中,节点的类型用于表征节点在所述有边界的svg画布中的位置与所述可移动的选择框的位置之间的关系;

根据所述需要在子图中呈现给用户的节点的类型,生成所述需要在子图中呈现给用户的节点相应的图形;

生成所述至少一个目标边相应的图形。

可选地,作为一个实施例,所述需要在子图中呈现给用户的节点中类型不同的节点相应的图形的形状不同。

可选地,作为一个实施例,所述图形显示单元1003:

在生成所述需要在子图中呈现给用户的节点相应的图形之后,渲染所述需要在子图中呈现给用户的节点相应的图形;

在生成所述至少一条目标边相应的图形之后,渲染所述至少一条目标边相应的图形。

可选地,作为一个实施例,所述图形显示单元1003:

若所述需要在子图中呈现给用户的节点中包括临界节点,则根据所述临界节点中的数据、所述待布局边中与所述临界节点相关联的边中布局位置在所述可移动的选择框范围之外的边中的数据和与所述临界节点相关联的节点中未被所述可移动的选择框选中的节点中的数据,渲染所述临界节点。

通过将临界节点相关联的边中的数据和一度节点的数据合并到该临界节点上,能够避免数据失真。

可选地,作为一个实施例,所述图形显示单元1003:

根据所述至少一个目标节点的标识和所述图索引,确定与所述至少一个目标节点相关的边中是否存在属于所述裁剪边集合中的边;

若存在,则基于所述需要在子图中呈现给用户的节点相应的图形和所述至少一条目标边相应的图形,以及所述与所述至少一个目标节点相关的边中属于裁剪边集合中的边,生成所述子图。

通过全局缩略图和子图的方式,能够基于全局缩略图做局部精化分析,避免数据分析不全面、数据准确性失真等问题。

实现数据结构可视化的装置1000还可执行图6至图8所示实施例的方法,并实现数据结构可视化的装置在图6至图8所示实施例的功能,本申请实施例在此不再赘述。

总之,以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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

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

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

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

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