一种社交网络数据展示方法、终端设备及存储介质与流程

文档序号:19610162发布日期:2020-01-03 14:02阅读:243来源:国知局
一种社交网络数据展示方法、终端设备及存储介质与流程

本发明涉及数据可视化展示领域,尤其涉及一种社交网络数据展示方法、终端设备及存储介质。



背景技术:

随着信息时代的快速发展,数据资源越来越多,人们的通讯方式也不尽相同,错综复杂的关系使得人们对信息的管理很不方便。因此,对海量数据的挖掘和运用至关重要。一个好的布局算法可以很好地展示数据之间的关系,帮助人们分析数据中的有用信息。

数据可视化系统是将存储的人物(事物)关系用一种比较清楚、美观的图标拓扑图进行展示。利用不同的布局算法计算图标(一个图标对应一个实体)的相对位置从而表示人物关系之间的亲密程度或重要关系。常见的布局算法有组织架构布局、tutte布局、力引导布局以及树形布局等。

现有tutte布局方法可以避免布局中的边交叉,但是在很大程度上会出现实体严重重叠的现象。



技术实现要素:

为了解决上述问题,本发明提出了一种社交网络数据展示方法、终端设备及存储介质。

具体方案如下:

一种社交网络数据展示方法,包括以下步骤:

s1:通过tutte布局方法将社交网络数据进行展示后,以布局的外框的中心点作为坐标系原点,构建虚拟坐标系,计算每个社交网络数据相应实体相对于虚拟坐标系的相对坐标;

s2:计算虚拟坐标系中除最大外框包含的实体之外的每个实体的斜率k,将斜率相同的实体分为同一组,同一组内的所有实体共用同一坐标,将该坐标设为对应组的坐标;

s3:将欧式距离小于实体大小λ的组进行合并,使其共用同一坐标;

s4:根据各组中包含实体的个数num和实体间的间距distance_entity,计算各组对应的扇形弧长l_arc:

l_arc=num*λ+(num-1)*distance_entity

s5:根据各组对应的扇形弧长l_arc,计算各组对应的扇形半径r:

s6:将各组内的不同实体平均分布于以该组坐标为圆心,半径为各组对应的扇形半径r,且相对于各组斜率对称的半圆上,并展示实体对应的社交网络数据。

进一步的,步骤s2中斜率k的计算公式为:

其中,x、y分别表示实体的横坐标和纵坐标,center_x、center_y分别表示坐标系原点的横坐标和纵坐标。

进一步的,步骤s6之前还包括:判断相邻两组之间是否满足|r1-r2|<σ<r1+r2,其中r1、r2分别表示组1和组2的半径,σ表示组1和组2之间的欧氏距离,当满足时,设定相邻两组共用同一坐标;否则,相邻两组采用各自的坐标。

一种社交网络数据展示终端设备,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例上述的方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现本发明实施例上述的方法的步骤。

本发明采用如上技术方案,可以将重叠实体以及近似重叠的实体进行分组,再依次展开成扇形,从而避免线交叉与实体重叠的现象,有助于数据的分析与展示。

附图说明

图1所示为传统tutte布局方法的流程图。

图2所示为本发明实施例一中改进方法的流程图。

图3所示为传统tutte布局方法的效果图。

图4所示为本发明实施例一中改进方法的效果图。

图5所示为传统tutte布局方法的整体效果图。

图6所示为传统tutte布局方法的未选中时的局部效果图。

图7所示为传统tutte布局方法的选中时的局部效果图。

图8所示为本发明实施例一中未采用改进方法步骤6时的布局效果图。

图9所示为本发明实施例一中采用改进方法步骤6时的布局效果图。

图10所示为本发明实施例一中改进方法的最终效果图。

图11所示为本发明实施例一中改进方法的局部效果图。

具体实施方式

为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。

现结合附图和具体实施方式对本发明进一步说明。

实施例一:

现有的tutte布局方法是将图论中距离最大的两个实体以及该实体间的所有数据均分部在布局的外框上,该外框的形状为一个正则多边形,当数据较多时,外框近似为圆形。且剩余的实体在尽量减少线交叉的条件下分布在外框内或者外框上。参考图1所示,现有的tutte布局方法具体流程如下:

步骤1、导入实体以及实体之间的关系。

步骤2、判断实体个数是否为0,如果是,结束;否则,进入步骤3。

步骤3、判断实体个数是否为1,如果是,进入步骤11;否则,进入步骤4。

步骤4、计算外框的半径。

所述外框为一个圆形,利用实体对应的图标的自身大小以及图标之间的间隔通过实体的总数计算圆形外框的周长,根据计算的周长利用弧长公式计算圆形外框的半径。

步骤5、判断实体关系所构成的图形是否为平面图,如果是,进入步骤6;否则,进入步骤7。

如果将一个拓扑图的拓扑结构进行变化(其拓扑关系不改变,只改变节点间的相对位置),该图中没有链接线的交叉,则称该拓扑图是可平面的;测试一个拓扑图是可平面的过程称为平面测试。

现有的平面测试方法很多,该实施例中采用相对简单的boyer-myrvold平面度测试方法进行平面测试。在其他实施例中,本领域技术人员可以采用其他方法来进行测试,在此不做限制。

步骤6、计算实体关系构成的平面图的平面嵌入。

步骤7、计算所有的外框大小,并寻找最大外框。

从不同节点开始随机创建深度优先搜索树,找到深度最大且节点最多的深度优先搜索树,该深度优先搜索树中的节点即为最大外框上的节点。

步骤8、计算最大外框上的各实体的坐标。

计算最大外框上的实体的个数,将各实体通过正则多边形的方式进行摆放,各实体的最终摆放位置对应的坐标即为该实体的坐标。

步骤9、判断是否有剩余实体未计算坐标,如果是,进入步骤10;否则,进入步骤11。

步骤10、计算最大外框内各实体的坐标。

该实施例中,采用ilp分支-切割方法对最大外框内各实体进行摆放,其摆放后位置对应的坐标即为对应实体的坐标。

步骤11、将所有实体移至画布中央,并进行展示。

所有实体的相对位置计算结束后,将他们一一映射到原始图中,产生每个实体最终的坐标。

从上述的tutte布局方法中可以看出,主要节点分布在外框上,其余节点分布在外框内,由于原始拓扑图的剩余实体坐标是通过tutte布局方法进行计算的,所以它们的坐标取决于其相邻实体的坐标,即它们坐标的位置直接取决于实体在原图中的拓扑结构。因此具有相同拓扑结构的实体会共享同一个位置,拓扑结构比较相近的实体坐标也很接近。

由于实体的最终展示形式为图标,图标本身具有一定的大小,所以实体间会出现完全遮挡或者半遮挡的现象,为了解决该问题,该实施例中提出了一种基于tutte布局方法的改进方法,在tutte布局的基础上,将完全遮挡与半遮挡的实体进行两次分组并进行扇形展开。如图2所示,该方法包括以下步骤:

步骤1、通过tutte布局方法将社交网络数据进行展示后,以布局的外框的中心点作为坐标系原点o,构建虚拟坐标系,计算每个社交网络数据相应实体相对于该虚拟坐标系的相对坐标。

步骤2、计算虚拟坐标系中除最大外框包含的实体之外的每个实体的斜率k,将斜率相同的实体分为同一组,同一组内的所有实体共用同一坐标,即为该组的坐标。

所述斜率k的计算公式为:

其中,x、y分别表示实体的横坐标和纵坐标,center_x、center_y分别表示坐标系原点o的横坐标和纵坐标。

通过步骤2能够解决完全遮挡问题。

步骤3、将欧氏距离小于实体大小λ的组进行合并,使其共用同一坐标。

具体为:设组1与组2的坐标分别为(x1,y1),(x2,y2),实体的大小为λ。则当组1与组2的欧氏距离时,就将他们归为一组,共用同一坐标。

需要说明的是,共用的坐标可以为组1的坐标,也可以为组2的坐标,也可以为组1和组2之间的连线上的任意一点的坐标,在此不做限制。该实施例中,为了方便计算,优选设定共用的坐标为组1的坐标(x1,y1)。

通过步骤3可以避免实体图标出现部分遮挡的现象。

步骤4、根据各组中包含实体的个数num和实体间的间距distance_entity,计算各组对应的扇形弧长l_arc:

l_arc=num*λ+(num-1)*distance_entity

步骤5、根据各组对应的扇形弧长l_arc,计算各组对应的扇形半径r:

该步骤主要用于计算每组对应的扇形半径的大小以便后续绘制扇形。

为了避免两个组之间的扇形弧线交叉处会出现图元的重叠,该实施例中步骤6之前还进一步包括:判断相邻两组之间是否满足|r1-r2|<σ<r1+r2,其中r1、r2分别表示组1和组2的半径,σ表示组1和组2之间的欧氏距离,当满足时,设定相邻两组共用同一坐标;否则,相邻两组采用各自的坐标。

步骤6、将各组内的不同实体平均分布于以该组坐标为圆心,半径为各组对应的扇形半径r,且相对于各组斜率对称的半圆上,并展示实体对应的社交网络数据。

实验结果:

如图3所示,为采用传统tutte布局方法的效果图,其中虚线框圈起来的实体位置处对应四个实体,由于他们共享同一位置,则数据信息展示不全面。图4所示为采用该实施例中的改进方法后的效果图,其中椭圆圈起来的四个实体为图3中的四个实体的展示效果。

如图5所示,当外框上的实体数量较多时,外框半径越大,布局效果越接近圆形。采用传统tutte布局方法的局部效果如图6所示,从表面上看,标识为“清正谦和wxid_s4nnxyyz0evp22”的实体和其他单个实体的表现形式没有什么区别,但选中时发现该实体位置处有21个实体共享一个位置(如图7所示)。

图8所示为未采用改进方法中步骤6时弧线交叉后的布局效果图,在交叉处会出现图标的重叠,图9为采用改进方法中步骤6判断扇形弧线交叉后进行处理的效果图。从图中可以看出,通过步骤6的判断能够避免弧线交叉产生的重叠。

如图10所示,该实施例中方法的最终效果图,如图11所示为图10中方框内的选中部分放大后的局部效果图,图10和图11中,将重叠实体进行扇形分布,避免重叠。

如表1所示,为多批数据改进方法前后耗时的时间差值,从表1可以得出,两种方法的运行时间几乎相同。

表1

本发明实施例一通过将非外框上的实体进行多次分组合并的方法,将每组内不同实体分布在半圆上,可以在不改变整张图拓扑结构的基础上,既保证实体间的连线间的交叉不会增加,也不会出现实体图标与链接之间的重叠。在展示所有实体信息的基础上,达到清晰美观的效果。

实施例二:

本发明还提供一种社交网络数据展示终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例一的上述方法实施例中的步骤。

进一步地,作为一个可执行方案,所述社交网络数据展示终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述社交网络数据展示终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,上述社交网络数据展示终端设备的组成结构仅仅是社交网络数据展示终端设备的示例,并不构成对社交网络数据展示终端设备的限定,可以包括比上述更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述社交网络数据展示终端设备还可以包括输入输出设备、网络接入设备、总线等,本发明实施例对此不做限定。

进一步地,作为一个可执行方案,所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述社交网络数据展示终端设备的控制中心,利用各种接口和线路连接整个社交网络数据展示终端设备的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述社交网络数据展示终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据手机的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述方法的步骤。

所述社交网络数据展示终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)以及软件分发介质等。

尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。

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