今天的文章,将在上一篇《Gephi社会网络分析-网络图的外观设置》的基础上,继续进行Gephi网络图设置和美化方面的学习和实践,本篇的主题是Gephi网络图的布局。 1 为什么网络图需要布局 网络图是一个复杂的结构,如果网络图中的节点表示坐标平面上的点,那么,就没有特别的布局的必要,只需要在坐标平面上的确定位置画上点,然后连线。但是,如果我们只知道点与点之间的距离,比如,社交关系网中两个人之间的社交距离,或者GooSeeker分词和情感分析软件得到的网络媒体上的文字之间的共线关系,那么,在一张图上,每个点没有确定的位置,只有相互关系,这样就需要一个算法把所有点分布安排好,这就是布局算法要做的事情。 Gephi布局(Layout)是根据某种策略对节点和边进行排布,使图形既具有特定需要的合理性,也易于视觉识别。本章介绍布局的操作界面,默认布局的运行方式,以及对几种力引导布局的比较。 布局是网络可视化中一个重要的概念,是指将点和边通过某种策略进行排布。为保持美观,一般认为布局应该尽可能满足以下4个原则。
2 实验数据获取 本篇我们依然使用Gephi自带的生成随机网络图的功能,对Gephi自动生成的随机网络图进行布局相关的设置和讲解。本系列学习文章参考了Gephi官网的资料。 后续将使用网络爬虫软件从实际的社交媒体网站上采集数据,并进行统计分析处理以后再导入Gephi做分析。那时候,数据来源是社交媒体比如微博,知乎等的有关数据及评论。这些社交网络内容先利用GooSeeker分词和情感分析软件进行自然语言处理,然后导出成excel格式的结果,比如,导出的共词矩阵,就可以作为邻接矩阵直接导入到Gephi。还可以参照我们此前发布的一系列Jupyter Notebook,利用GooSeeker分词和情感分析软件导出的特征词匹配矩阵,计算协方差或者皮尔森相关系数,相当于采用另一种度量,然后再利用Gephi做网络分析。 3 布局的说明和基本操作界面 3.1 布局的分类和功能 布局大致可以分为两类:一类是力引导布局;另一类是辅助性的、带有编辑和调整性质的布局。 力引导布局采用力引导布局算法,能够模仿物理世界中的引力和斥力。力引导布局算法建立在粒子物理理论的基础上,将图中的节点模拟成原子,通过模拟原子间的力场来计算节点间的位置关系。 力引导布局算法会考虑原子间引力和斥力的互相作用,计算得到节点的速度和加速度。依照类似原子或者行星的运动规律,系统最终进入一种动态平衡状态。力引导布局算法会自动重复计算每个节点在图中的合理位置,直到重复次数超过某个预先定义的数值,或整个网络的力趋于平衡。 稳定下来的图不仅可以充分展示网络的整体结构,丰富的网络往往也具有优美的效果。力引导布局算法是图布局算法中一种非常主要的算法,也是Gephi的主要布局。力引导布局有6种,即Force Atlas、Force Atlas 2、Fruchterman Reingold、OpenOrd、Yifan Hu、Yifan Hu比例。 辅助布局没有力引导布局的智能特性。辅助布局是根据某种预先定义的规则对图进行布局,例如Noverlap的作用是使节点之间没有重叠。辅助布局有6种,即Noverlap、Rotate、扩展、收缩、标签调整、随机布局。 3.2 布局的操作界面 在布局的界面中,单击“选择一个布局”下拉菜单,会列出几种不同的布局,如下图所示: 选择其中一个布局,就会显示该布局的相关参数,可以根据需要设置这些参数,如下图所示: 单击“运行”按钮,选择的布局就会生效,运行布局后,就可以把一个没有规则的图形,按照一定的规则显示出来,效果如下图所示: 3.3 Gephi预设的几种力引导布局 Force Atlas布局 Force Atlas布局使图更紧凑、可读性强,Force Atlas布局部分参数的作用如下:
Force Atlas 2布局 Force Atlas 2是改进的Force Atlas算法,速度更快。Force Atlas 2布局部分参数的作用如下。
Fruchterman Reingold布局 Fruchterman Reingold布局简称FR布局,FR布局基于再次改进的弹性模型,该布局算法遵循两个简单的原则,即有连接的节点互相靠近和无连接的节点互相排斥。 Fruchterman Reingold布局部分参数的作用如下:
OpenOrd布局 OpenOrd布局是一种新的力引导布局,支持多核、并行。OpenOrd布局的Stages(阶段)分为Liquid(液体)、Expansion(扩张)、Cooldown(冷却)、Crunch(紧缩)和Simmer(煨)5个过程,适合处理节点较多的图;而对于节点较少的图形,运行起来效果并不是很好。 Yifan Hu布局 Yifan Hu布局也是力引导布局的改进版,由胡一凡在2005年提出,在多层级力引导算法中引入了超节点的概念。在这个布局算法中,将一个节点与它远处一簇节点之间的斥力当作此节点与一个超节点间的斥力来计算,从而大大减少了计算量,使得总计算复杂度下降。该布局可以处理几十万个节点规模的图。 Yifan Hu布局部分参数的作用如下。
Yifan Hu比例布局 Yifan Hu比例布局的参数与Yifan Hu布局的参数相同,实际上这两个布局所起到的作用是相同的,扩展/收缩布局的参数只有比例因子,比例因子的设置方法如下。
4 布局的实验 Gephi预设的这几种布局,在选取并运行后,需要做一些运算,具体时间和所用电脑的配置有关。这里我们针对Fruchterman Reingold布局做一下实验,其它几种有兴趣的朋友可以自行实践。 4.1 生成随机网络图 4.2 根据“度”调整网络图节点颜色 4.3 根据“度”调整网络图节点大小 4.4 运行Fruchterman Reingold布局 5 总结 以上就是今天学习和实验的布局相关的内容。使用了自动生成的随机数据构造了网络。 我们接下来会出几篇利用实际的社交网络上的内容作为实验样本,展示怎样和网络爬虫工具和中文分词工具配合在一起,用Gephi来可视化展示和分析网络结构的数据,在这期间,甚至需要在Jupyter Notebook上利用Python的networkx网络计算工具对网络数据先进行图算法相关的计算,得到的结果再用Gephi做分析。 |