Gephi 简介

image.png
Gephi 是一款网络分析领域的数据可视化处理软件,开发者对它寄予的希望是成为“数据可视化领域的 Photoshop”,可运行在 Windows、Linux 及 Mac OS 系统上。

特点

Gephi 主要有以下三大特性:

  • 由内置的快速的 OpenGL 引擎提供支持,Gephi 能够利用非常大的网络推送信封,可视化网络多大一百万个元素,所有元素都会实时运行,如布局、过滤器;
  • 简单易于安装和使用,以可视化为中心的 UI,类似 Photoshop 的图形处理一样;
  • 支持模块化扩展 Gephi 及插件开发,该架构构建在 Netbeans 平台之上,可以通过精心编写的 API 轻松扩展或重用。

主要功能模块

分类 主要功能 具体内容
网络布局 通过布局算法将网络关系直接转换为图,以图形方式研究网络 提供是 10+ 网络布局算法,如 force atlas、force atlas2 等
网络统计 通过不同的统计算法计算网络属性,供研究发现网络特性 研究节点和边:节点度(度/出度/入度)、介数中心度、亲密中心度、特征向量中心度、节点 PageRank 值、离心度、聚类系数、最短路径
研究网络整体:平均度、平均加权度、网络直径、网络半径、平均路径长度、图密度、平均聚类系数
研究小团体:模块化(把度相同的节点归类)、连接组件(基于节点连通关系,根据连接关系对节点归类)
网络滤波 通过用户设定的规则对网络中的节点或边进行筛选,从而更加精准的探索和分析网络 提供的筛选路径包括节点或边的属性、网络拓扑结构等
网络可视化 自定义或根据数据设置节点的大小、节点颜色、边的粗细、边的颜色及节点与边的标签的颜色及大小 用户自定义:手动设置大小、颜色等
根据数据设定:原始数据本身携带的可以用于设置的数值;通过 gephi 统计功能计算出新的数据也可用于设置

操作介绍

Gephi 共包括三个主要页面:

  • 概览:图处理、可视化编辑的主要界面;
  • 数据资料:分为节点数据和边数据,在数据表上方和下方是用于数据处理的工具;
  • 预览:预览输出,图形处理完成后,可以在此输出。

概览界面

image.png

图窗体:图编辑和显示

操作节点和连线的工具

image.png

  • 鼠标选取范围尺寸调整:如果将鼠标移动到某一个节点上,与这个节点组成边的其他节点就会显示,从而了解该节点的关联状态。单击 configure 按钮,可以设置鼠标选取的范围,即同时选择一组节点,并且显示这组节点相关联的其他节点;
  • 单选:单独选择一个节点,右击进行操作;
  • 矩形选取:在一个矩形范围内选取一组节点;
  • 移动:按左键拖动节点,按右击拖动图像、滑动鼠标滚轮放大或缩小整个图形;
  • 单节点涂色:单击次数越多,节点颜色越深,在矩形范围内会给多个节点涂色;
  • 节点大小调整:按住鼠标左键上下拖动;
  • 关联节点涂色:颜色、颜色强度、扩散模式;
  • 新建节点:颜色、直径;
  • 新建边:点击源节点,再点击目标节点,会生成一条新边,可以设置边类型和权重;
  • 节点距离:判断两个节点之间是否存在路径,如果存在就把最短路径用选中的颜色表示出来;
  • 节点范围:以一个节点为起点,根据距离的远近,给不同距离的节点图上不同的颜色,在涂色中,也会引入权重的参数,在涂色之前需要配置涂色的模式和色彩,其中,涂色的模式分为梯度 grandient 和调色板 palette;
  • 节点属性:节点属性是节点基础数据和统计数据的查看和编辑工具,分为 Properties 数据和 Attributes 数据。Properties 可以理解为节点天生的、固有的数据,包括尺寸、位置、颜色、标签大小及颜色等;Attributes 可理解为抽象化、动态变更的数据,包括 ID、标签、间隔等,Attributes 数据可以根据节点数据的增加而扩充。

    1. ![image.png](https://cdn.nlark.com/yuque/0/2020/png/244306/1605252237505-9108b3ba-fc28-4335-acb4-e95f77c874c2.png#align=left&display=inline&height=213&margin=%5Bobject%20Object%5D&name=image.png&originHeight=285&originWidth=298&size=42338&status=done&style=none&width=223)

编辑标签和控制显示的属性的工具

image.png

  • 图形复位(图中心):使图形缩放到能够最大化地全部显示在图窗体中;
  • 重设颜色:重设全部节点的颜色;
  • 重设标签颜色:标签颜色恢复默认;
  • 复位标签大小:标签大小恢复默认;
  • 背景颜色:重设背景颜色;
  • 截图:截图及截图配置;
  • 节点及边设置:
    • 标签显示开关;
    • 边显示开关;
    • 边使用节点颜色开关;
    • 边标签显示开关;
    • 边粗细;
    • 标签大小模式;
    • 标签涂色模式;
    • 字体及字体大小;
    • 标签大小调节;
    • 标签默认颜色;
    • 标签显示选择;
  • 全局设置:
    • 全局:image.png
      • 自动选择邻居:鼠标指向一个节点后,关联节点显示的方式;
      • 高亮选择:鼠标指向一个节点后,这个节点与其他节点颜色的变化方式,勾选后指向的节点保持原来的颜色,其他节点变暗;取消沟通后,指向的节点变暗,其他节点保持原来颜色;
    • 边:image.png
      • 使用节点的颜色:指边会使用节点的颜色;
      • 选择颜色:勾选后,把鼠标移动到一个节点后,这个节点出边、入边及双向边会用不同的颜色显示;
    • 标签:image.png
      • 节点:节点标签字体大小和颜色;
      • 边:边上标签的字体大小及颜色;
      • 隐藏未选中:勾选后,只有鼠标移动到某个节点上后标签才会显示;
      • 节点标签大小:共有三种类型,fixed(固定大小,标签大小不跟节点大小变化而变化)、scaled(标签随节点大小变化而变化)、nodeSize(节点越大,标签越大,但标签大小本身是固定的,不随节点大小变化而变化);
      • 节点标签颜色:共有三种类型,unique 表示节点标签和边标签都是用选定的颜色,object 表示节点标签使用节点颜色,边标签使用边的颜色;text表示节点标签都使用默认黑色。


布局:节点与边的排布

布局是根据某种策略对节点和边进行排布,使图形既具有特定需要的合理性,也易于视觉识别。它们的核心都是平衡一个网络中节点的斥力和引力关系。一般来说,布局应满足:

  • 使节点均匀分布在有限的区域内;
  • 避免边的交叉和弯曲;
  • 保持边的长度一致;
  • 使整体布局能反映图的内在特性。

默认布局(12种)大致可分为两类:

  • 力引导布局,共 6 种:force atlas;force atlas2;fruchterman reingold;openord;yifan hu;yifan hu 比例;
  • 辅助性的、带有编辑和调整性质的布局:共 6 种:noverlap;rotate;扩展;收缩;标签调整;随机布局。 | 布局类型 | 描述 | 参数配置 | | —- | —- | —- | | force atlas | 使布局更加紧凑,可读性更强 | 1、惯性:值越大,图摇摆幅度越大
    2、斥力强度:节点排斥其他节点的强度,值越大,节点距离越大
    3、吸引强度:连接节点的吸引力强度,值越大,有连接的节点越被拉进
    4、重力:值越小,图越分散;值越大,图越被压缩
    5、速度:布局运动的速度,值越大,图布局的速度越快 | | force atlas 2 | 改进的 force atlas,速度更快 | 1、缩放:节点的斥力强度,值越大,斥力越大,图越稀疏
    2、更强的重力:已定义好的较强的重力
    3、重力:自定义的重力值,可以比更强的重力更强
    4、劝阻 hubs:只有输入的边会被推到边缘
    5、LinLog 模式:线性和对数模式的切换
    6、防止重叠:将重叠的节点展开
    7、容差(速度):布局速度的选取,较小的值速度慢,但精度更高 | | Fruchterman Reingold 布局 | FR 布局,基于再次改进的弹性模型 | 1、区:定义图形的幅度,值越大图越大,越稀疏
    2、重力:定义重力值,值越大重力越强,节点越被中心吸引
    3、速度:布局的速度,值越大布局速度越快,但越不精确 | | Noverlap(交叠) | 可防止节点重叠,但不考虑节点标签重叠 | 1、速度:速度越快,精度越差
    2、节点间距:间距为 1 时,节点会连接在一起,间距为 2 时,节点会分开;间距为 1.1 时,间距增加 10%,小于 1 时允许节点重叠
    3、幅度:增加幅度半径,幅度为 0 时,没有余量,幅度为 10 时,节点分开至少 20 像素,负幅度允许重叠 | | Openord | 支持多核、并行,适合处理节点较多的图 | 布局阶段分为 liquid、expansion、cooldown、crunch 和 simmer 5 个过程 | | rotate | 顺/逆时针旋转 | 将图形从整体上做顺时针或逆时针旋转 | | Yifan Hu | 在多层级力引导算法中引入超节点概念 | 1、最佳距离:值越大,整个图的尺寸越大
    2、相对强度:值越大,节点越稀疏 | | 扩展/收缩布局 | 对图形做整体上的放大或缩小处理 | 比例因子为 1,图保持原状:
    大于 1:图放大,值越大,放大比例越大;
    小于 1:图缩小,值越小,缩小比例越大 | | 标签调整布局 | 防止节点标签重叠 | 1、速度:值为 1,可较缓慢地把标签重叠的节点躲避开,使节点标签没有重叠,值越大,速度变快,但躲避的幅度会较大
    2、包括节点的大小:勾选后,会使重叠的节点也躲开 | | 随机布局 | Gephi 初始导入数据时的模式,将节点随机散步在正方形内 | 空间大小可以设置随机散步节点的正方形的边长 |

统计:使用算法测度网络

统计面板,主要围绕以下内容:

  • 根据统计算法,为节点或边计算出不同的数值;
  • 研究节点的度:度、加权度、PageRank、聚类系数、特征向量中心度、模块化;
  • 研究边的连接性:网络直径、连接组件;
  • 研究图的整体特性:平均度、平均加权度、图密度、平均路径长度;
  • 研究聚类特性:模块化。

    模块化和连接组件都具有某种归类或聚类的特性,但模块化根本上是统计节点的一种度,并在此基础上把度相同的节点归类;连接组件并不考虑节点度的状态,而仅仅是根据连接关系对节点归类。

分类 统计量 解释
网络概述 平均度 无向图:所有节点的度数和/节点数量(一个边能表示两个节点的度,所以所有节点的度数和等于边的数量乘以 2)
有向图:出度和或入度和/节点数量(因为出度和等于入度和,所以公式可以简化为数量直接除以节点的数量)
平均加权度 平均度中将所有的权重当做 1 来处理,平均加权度中根据实际的权重计算节点的度,再根据加权的度计算平均度,即所有节点的加权度和除以节点数量,有向图类似
网络直径 在一个网络中,最短路径最长的两个节点之间的距离
图密度 实际的边数与最大可能的边数之比
最短路径 两个节点之间可能存在多条可连通的路径,其中最短的路径称为最短路径,最短路径的值是最短路径中边的个数
模块化 根据图的连接关系对节点归类,类型相同的节点会增加一个字段,用相同的数字表示,可用于社区发现
PageRank 基于 PageRank 算法计算节点的重要性
连接部件 如果所有节点都可以连通,称为连通图;否则称为非连通图。在非连通图中基于连接关系可划分多个区块,每个区块称为一个连通分量。计算连接组件后,Gephi 会给每个节点一个标注,把属于同一个连通分量的节点用一个相同的数字表示。
在有向图中,可分为强连通图和弱连通图。
介数中心度 所有的节点对之间通过该节点的最短路径条数,一个节点的 Betweenness 越大,流经它的数据分组越多,意味着它更容易拥塞,成为网络的瓶颈
亲密中心度 一个节点所能到达的节点的数量除以所能到达节点的最短路径之和。此种节点在网络中并非处于核心位置,与其他节点的关系并非最多;所处的位置也并非十分核心,但此节点与网络中其他节点的距离总和最短,也就是该节点在网络中有最佳视野,可以察知网络中所发生的事情,以及讯息的流通方向
离心度 一个节点能到达的最大的最短路径,即从一个节点所有可以到达的节点中,账号出最长的最短路径
节点概述 平均聚类系数
特征向量中心度 当前节点的中心性取决于邻居点的中心性
边概述 平均路径长度 节点数量除以所有两个节点最短路径之和,即平均每个最短路径可以分配到几个节点
动态 一个节点的边的数量,有向图中区分度、出度和入度
聚类系数 一个节点一度连接的节点中,实际的边数与最大边数之比

外观:节点、边、标签设置

自定义或根据数据设置节点的大小、节点颜色、边的粗细、边的颜色、节点与边的标签的颜色及大小。在以颜色和大小为目标的编辑中,可以通过两种方式实现,一种是设置为统一的颜色和大小,另一种是根据数值设定颜色和大小。
image.png

数据自定义可以有两种方式实现:

  1. 原始数据本身携带了可以用于设置的数值;
  2. 通过 Gephi 统计功能计算出新的数据用于设置。

节点

image.png
界面上右上角的 4 个按钮(节点颜色、节点大小、节点标签颜色、节点标签大小)会和统一的数值设定组合产生不同的效果。

image.png
界面右上方的 3 个按钮(边颜色、边标签颜色、边标签大小)会和统一的数值设定组合产生不同效果。

Gephi 0.9.1 版本以后,节点与边的颜色的数值设定细分为 partition(分区)和 ranking(排名),partition 是用有区别的颜色给节点或边涂色,ranking 是用颜色渐变的方式给节点或边涂色。而节点与边的其他属性(节点大小、节点与边的标签颜色和标签大小)则没有细分,只有数值设定更改为 ranking,而没有操作上的变动。

过滤:查询、筛选与分类

过滤器 filters 是通过用户设定的规则对网络中的节点或边进行筛选,从而能够更精准的探索与分析网络、过滤界面可以分为三部分:4 个与过滤有关的工具、过滤选取分类、过滤界面查询工具。

四个与过滤有关的工具
image.png
重置是清除所有过滤规则;第二个是往过滤的节点中写入数据;第三个是把过滤出的节点和边移动到一个新的工作空间;第四个是隐藏过滤出的节点和边。

过滤选取工具
image.png
动态:根据动态图的特性进行过滤
通过约束范围和空值,观察动态图在不同时间段内结构的变化。

属性:根据图节点或边的属性进行过滤

属性类型 解释
分区 对节点计算统计数据后,根据统计数据的数值约束,显示不同的节点
分区统计
等于 把节点或边中某个字段值相同的节点或边查询出来,与分区功能类似,但一次只能选择一个字段的一个数值
非空 显示值不为空的节点或边
范围
边之间
边内部

拓扑:根据图的拓扑结构进行过滤

类型 解释
具有自环 自环指一个节点有指向自身的一条边,筛选出包含自环的节点
K-核心 K-核心是指在一个图中,由多个节点组成的一组节点集,k 表示这个节点集中每个节点的度都不小于 k 值。在节点集中,互相之间连接度一致到度数称为这个核心的核数
在度的范围(入度范围) 过滤出入度相同的节点,仅支持有向图
巨人组件 巨人组件指在一个图中占有节点数比例最高的连通子图,如果图中由两个或多个节点数量一样多的子图,则优先保留包含节点内部 ID 靠前的子图。
度范围 定义一个范围,筛选度(仅统计度数,不细分出入度)符合该范围的节点
相互度范围 相互度范围指节点的双向边数量,可根据双向边的数量对节点查询和分类
自我网络 自我网络是由唯一一个中心节点,以及这个节点的邻居组成的图,可以过滤出特定节点深度在 1 度、2 度、3 度以及最大度情况下生成的图
超出度范围(出度范围) 过滤出图中出度在某一范围的全部节点

操作分类:过滤过滤,可以将多个过滤器以某种逻辑关系结合在一起进行过滤

类型 解释
边 Mask 显示符合一定条件的边,需与上述的过滤器结合,如显示与度为 2 的节点连接的边,需要将属性-等于-度拖入到 mask 边的子过滤器中
不(节点) 不显示指定的节点
不(边) 不显示指定的边
交集 显示同时符合多个条件的过滤
并集 显示在多个条件中符合任意一个条件的过滤

边:根据边的特性进行过滤

类型 解释
Edge Type Edge Type 指两个节点之间可以有多条边,多条边用不同的关键词标记,关键词存储在数据资料界面的 kind 字段中
Mutual Edge 过滤双向的边,即单向边不会显示,并且只对有向边有效
Self-loop 不显示图中的自环
边的权重 根据边的权重过滤边

数据资料界面

image.png
数据资料界面最主要的是数据表格面板,当然了,Gephi 中所有面板都是可以自由组合展示的。

数据表格面板提供的功能也非常丰富:

  • 节点和边数据展示
  • 配置
  • 增加节点和边;
  • 搜索/替换;
  • 输入输出电子表格
  • 删除图、删除边
  • 重复数据监测
  • 添加、删除、合并列

另外每行数据右键菜单上也提供了非常丰富的功能,如编辑节点、移动、复制、设置节点大小等等。
image.png

预览界面

image.png
预览界面上面,可以看到图的所有配置项,在预览界面同样可以修改图上的元素样式。

Gephi 支持输出 SVG、PDF 或 PNG 格式。

总结

整体看来,Gephi 属于图可视化工具中的佼佼者,虽然很多交互比较反人性,且 UI 丑到爆,但瑕不掩瑜,强大的功能及性能足以掩盖种种不足,是非常值得我们去好好研究和借鉴的图可视化工具,我们做的所有图探索分析产品,在能力上面都应该尽可能地向 Gephi 看齐。