Gephi使用详解 实现图可视化(janusgraph)
描述
Gephi 是一款网络分析领域的数据可视化处理软件,开发者对它寄予的希望是:成为 “数据可视化领域的Photoshop” ,可运行在Windows,Linux及Mac os系统。
项目地址:
https://github.com/gephi/gephi
https://github.com/gephi/gephi-plugins
特点
快速由内置的OpenGL引擎提供支持,Gephi能够利用非常大的网络推送信封。可视化网络多达一百万个元素。 所有操作(例如布局,过滤器,拖动)都会实时运行。
简单易于安装和使用,以可视化为中心的UI,像Photoshop™的图形处理一样。
支持模块化扩展Gephi及插件开发,该架构构建在Netbeans平台之上,可以通过精心编写的API轻松扩展或重用。
安装 Gephi
前往Gephi官网:https://gephi.org/users/download/
,下载对应的版本进行安装。
Graph Streaming 插件使用
- 安装插件
在菜单栏选择 ‘’工具” -> “插件” -> “可用插件” 中找到Graph Streaming
点击进行安装。安装完成后在左下方的菜单栏会显示Streaming
的选项卡 - 新建项目
在菜单栏选择 “文件” -> “新建项目”,”工作区” -> “重命名” 输入”workspace1” 对项目进行重命名。 - 启动Server
在”Streaming”选项卡,点击”Master”展开子类,选中”Master Server”右键点击选择”start”,启动Server。 Gremlin 连接
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
# 查看使用的插件列表 gremlin> :plugin list ==>janusgraph.imports[active] ==>tinkerpop.server[active] ==>tinkerpop.gephi ==>tinkerpop.utilities[active] ==>tinkerpop.sugar ==>tinkerpop.credentials ==>tinkerpop.hadoop[active] ==>tinkerpop.spark[active] ==>tinkerpop.tinkergraph[active]# 使用 tinkerpop.gephi 插件 gremlin> :plugin use tinkerpop.gephi ==>tinkerpop.gephi activatedgremlin> :plugin list ==>janusgraph.imports[active] ==>tinkerpop.server[active] ==>tinkerpop.gephi[active] ==>tinkerpop.utilities[active] ==>tinkerpop.sugar ==>tinkerpop.credentials ==>tinkerpop.hadoop[active] ==>tinkerpop.spark[active] ==>tinkerpop.tinkergraph[active]# 创建简单的 Modern 图 gremlin> graph = TinkerFactory.createModern() ==>tinkergraph[vertices:6 edges:6]# 连接到 tinkerpop.gephi 插件 gremlin> :remote connect tinkerpop.gephi ==>Connection to Gephi - http://localhost:8080/workspace1 with stepDelay:1000, startRGBColor:[0.0, 1.0, 0.5], colorToFade:g, colorFadeRate:0.7, startSize:10.0,sizeDecrementRate:0.33 gremlin> :> graph Connect to localhost:8080 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused (Connection refused)# 连接到 tinkerpop.gephi 插件,设置port值 gremlin> :remote connect tinkerpop.gephi ==>Connection to Gephi - http://localhost:8080/workspace1 with stepDelay:1000, startRGBColor:[0.0, 1.0, 0.5], colorToFade:g, colorFadeRate:0.7, startSize:10.0,sizeDecrementRate:0.33 gremlin> :remote config port 8088 ==>Connection to Gephi - http://localhost:8088/workspace1 with stepDelay:1000, startRGBColor:[0.0, 1.0, 0.5], colorToFade:g, colorFadeRate:0.7, startSize:10.0,sizeDecrementRate:0.33 gremlin> :> graph ==>tinkergraph[vertices:6 edges:6] ==>false
至此,图数据库中的数据已经导入到Gephi中。
Gephi 工具介绍
布局、分割、排序、过滤、统计
- 布局(Layout): 根据算法规则自动美化图形的工具。 Gephi提供12中布局方式,前6种是主要布局工具,后面6种是辅助布局工具。
最常用的是:力导向算法(Force Atlas和 ForceAtlas2)、圆形布局和胡一凡布局(Yifan Hu、Yifan Hu比例、Yifan Hu多水平)。- Force Atlas及Force Atlas2
Force Atlas及Force Atlas2为力引导布局,力引导布局方法能够产生相当优美的网络布局,并充分展现网络的整体结构及其自同构特征,所以在网络节点布局技术相关文献中该方法占据了主导地位。
力引导布局即模仿物理世界的引力和斥力,自动布局直到力平衡;Force Atlas布局使图更紧凑,可读性强,并且显示大于hub的中心化权限(吸引力分布选项),自动稳定提高布局的衔接。 - Fruchterman Reingold布局
Fruchterman和Reingold基于再次改进的弹性模型提出了FR算法。该算法遵循两个简单的原则:有边连接的节点应该互相靠近;节点间不能离得太近。FR算法建立在粒子物理理论的基础上,将图中的节点模拟成原子,通过模拟原子间的力场来计算节点间的位置关系。算法通过考虑原子间引力和斥力的互相作用,计算得到节点的速度和加速度。依照类似原子或者行星的运动规律,系统最终进入一种动态平衡状态。 - Yifan Hu多水平布局
Yifan Hu、Yifan Hu比例、Yifan Hu多水平为胡一凡布局,Yifan Hu多水平布局适用于非常大的图形,特点是粗化图形,减少计算量,运行速度比较快。
- Force Atlas及Force Atlas2
- 分割(Partition): 分割也是一种归类,把值相同的节点或边用不同的颜色标示出来,还可把值相同的节点组合成一个节点。
- 度中心性(Degree Centrality): 在网络分析中刻画节点中心性(Centrality)的最直接度量指标,一个节点的节点度越大就意味着这个节点的度中心性越高,该节点在网络中就越重要。
- 中介中心性(Between Centrality): 度量一个节点出现在网络中最短路径上的频率。
- 接近中心性(Closeness Centrality): 反映在网络中某一节点与其他节点之间的接近程度。将一个节点到所有其他节点的最短路径距离的累加起来的倒数表示接近性中心性。即对于一个节点,它距离其他节点越近,那么它的接近性中心性越大。
- 特征向量中心性(Eigenvector Centrality): 一个节点的重要性既取决于其邻居节点的数量(即该节点的度),也取决于其邻居节点的重要性。
- 离心率: 从一个给定起始节点到距其最远节点的距离。
- 排序(Ranking): 根据一些值对节点和标签进行归类和排序,并把排序以大小、颜色的形式应用到节点和标签上。
- 过滤(Filters): 在作图过程中经常需要把一些值相同的节点或边选择出来,此时需要用到过滤工具,通过过滤功能实现选择或者将符合条件的节点和边过滤出来。
- 统计(Statistics): 根据内置的算法对节点和边的属性值做运算,并把运算结果存入节点和边的属性里面,供分割和排名使用。
- degree(平均度): 计算每个节点的度,并统计相同度的节点数量
平均度: 有向图: 所有点的度数总和/节点数*2 无向图: 所有点的度数总和/节点数
在图上能够,看出每个度所占的百分比,能够看到每种度用不同颜色标示
通过这个可以看出哪些节点的度高,反应出连接他的点就多,就越关键 - weightedDegree(平均加权度): 加权入度 加权出度 加权度
有向图: 取得每个点的边,如果该边的源为该节点,那么该边的权重为加权出度,反之亦然。计算出每个点的加权出度,入度和度
其实平均度是平均加权度的一个特例,平均度的每条边的权重为1
加权度为加权出度和入度的总和
计算同样入度出度的节点个数
无向图: 取得每个点的边,将边的权重求和,即为该点的加权度
平均加权度: 有向图:加权度总和/2*节点数 无向图: 加权度总和/节点数 - GraphDistance(网络直径): 指网络任意两节点间距离的最大值。
- graphdensity(图密度):
无向图: 边数2 / (节点数节点数-节点数)
有向图: 边数 / (节点数节点数-节点数)
大概理解: (节点数节点数-节点数) 这个计算出最多的连接边数(不包含连自己) , 用实际边数除以最大可能边数,即为密度, 结果越大表示图中节点连接越紧密 - hits(点击次数): 分析经典的基于超链接分析的主题搜索
计算2个值
authority: 每个节点入度的比值。 简单的,就是总的节点的入度和,除以该节点入度和,提现节点重要性,或者页面的重要性,被链接的多,说明入度多,就跟重要
计算每个引入(指向该节点)该节点(有入度的节点)的节点的hub(初始为1)总和,用该值除以所有点的authority值
hub:
计算每个引入(指向该节点)该节点(有出度的节点)的节点的 authority (初始为1)总和,用该值除以所有点的 hub 值 - modularity(模块化): 一种聚类算法
- 平均路径长度: 指所有点对之间的最短路径的算术平均值。
- degree(平均度): 计算每个节点的度,并统计相同度的节点数量
Gephi 实战
在Graph Streaming插件使用中我们已经把数据成功导入到了Gephi中,看下目前的预览效果。
就是一坨很丑的看不懂的东西,接下来我们将使用Gephi来美化它。
- 布局
选择”Force Atlas”布局,属性”斥力强度”修改为 10000,”由尺寸调整”打钩选中,然后点击”运行”。预览效果如下:
- 外观
选择”节点” -> “Partition” -> “name”,以节点的”name”属性来对节点的颜色进行区分,点击”应用”按钮。选择”节点” -> “大小” -> “统一的”,设置节点大小为40,点击”应用”按钮。
选择”节点” -> “边” -> “Ranking” -> “边的权重”,设置边的颜色,点击”应用”按钮。
预览效果如下:
- 预览
选择 “节点标签” -> “显示标签” -> “选中打钩”,在”字体”中调整字体的大小等。
选择 “边标签” -> “显示标签” -> “选中打钩”,点击”刷新”。
效果如下:
更多
Tinkerpop Gephi Plugin 文档:http://tinkerpop.apache.org/docs/current/reference/#gephi-plugin
Gephi使用详解 实现图可视化(janusgraph)相关推荐
- 详解基于图卷积的半监督学习
Kipf和Welling最近发表的一篇论文提出,使用谱传播规则(spectral propagation)快速近似spectral Graph Convolution. 和之前讨论的求和规则和平均规则 ...
- Quartus II 8.1 详解--有图---图片详解 【1讲】
Quartus II 8.1 详解--有图---图片详解 看图片比较清楚,比文章清楚的多 本文转自 zhangguangyi 51CTO博客,原文链接http://blog.51cto.com ...
- 机箱主板跳线接法详解(图) (机箱面板的POWER LED线,POWER SW线,HD线,RESET线,usb线)
机箱主板跳线接法详解(图) 作为一名新手,要真正从头组装好自己的电脑并不容易,也许你知道CPU应该插哪儿,内存应该插哪儿,但遇到一排排复杂跳线的时候,很多新手都不知道如何下手. 钥匙开机其实并不神秘 ...
- 机器学习,深度学习基础算法原理详解(图的搜索、交叉验证、PAC框架、VC-维(持续更新))
机器学习,深度学习基础算法原理详解(图的搜索.交叉验证.PAC框架.VC-维.支持向量机.核方法(持续更新)) 机器学习,深度学习基础算法原理详解(数据结构部分(持续更新)) 文章目录 1. 图的搜索 ...
- mediumtext_MySQL中tinytext、text、mediumtext和longtext等各个类型详解【图】
MySQL中tinytext.text.mediumtext和longtext等各个类型详解[图] 07-29栏目:技术 TAG:mediumtext mediumtext 一.字符串类型 www.j ...
- 【论文必用】模糊C均值聚类的简单介绍、复现及Python代码详解、聚类可视化图的绘制过程详解!
详解模糊C均值聚类 一.聚类 二.模糊C均值聚类 三.模糊C均值聚类的Python实现 四.参考链接 一.聚类 聚类的定义: 将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类.由聚类 ...
- Transformer结构详解(有图,有细节)
文章目录 1. transformer的基本结构 2. 模块详解 2.1 模块1:Positional Embedding 2.2 模块2:Multi-Head Attention 2.2.1 Sca ...
- android ui框架详解,多图详解 “Android UI”设计官方教程(二)
编者注:本文为Android的官方开发者博客发了一份幻灯片的翻译文档的第二部分,专门介绍了一些Android UI设计的小贴士,我们在介绍这个幻灯片的第一部分<多图详解 "Androi ...
- lol澳洲服务器如何注册账号,云顶之弈手游澳服怎么进 LOL手游澳服账号注册流程详解[多图]...
云顶之弈手游澳服作为国内玩家比较多的服务器,不仅可以偶遇到国内好友还可以遇到国际友人哦,那么具体服务器进入方法就让安族66来告诉大家吧~ LOL手游澳服账号注册流程详解 [云顶之弈手游已经开放注册 如 ...
最新文章
- 大师Martin Fowler强烈推荐的一本书
- java 主线程_Java中的主线程 - Break易站
- 一年成为emacs高手
- Mvp快速搭建商城购物车模块
- Enterprise search debugging via test report in AG3
- Eureka实例自动过期
- 设计模式:高性能IO之Reactor模式
- 图片加载库Glide
- SpringBoot的注解@Qualifier用法
- 重量级!Maven史上最全教程,看了必懂
- TCP/IP学习笔记12-- IP协议基础
- [ASP.NET MVC 小牛之路]08 - Area 使用
- 短信轰渣器搭建源码下载
- 邮件、社交营销最全“勾搭”策略
- 读者福利,单独赠书啦!这次的书你肯定喜欢!
- 安卓开发2019年终总结(写的很水,千万别打开)
- 【Qt】Qt项目打包
- SAP 开发者Access Key 与对象修改Access Key
- 多元函数的向量表示_多元高斯分布完全解析
- 2020年的1024程序员节(娱乐小文章)
热门文章
- Node 之父 Ryan Dahl说:Node 失误太多无力回天,Deno 前景明朗。NodeJS要完蛋吗?
- dependency problems
- 第四章 照相机模型与增强现实
- mfers: 丧文化,后亚文化下的 Web 3.0 新部族
- 基于 keepalived 实现两台机器服务(主备)故障自动切换
- 视觉设计师跟平面设计_用户体验设计师应了解的6条视觉设计原则
- 【旧文集】解忧杂货店读后感悟-记于2016年底
- 88是python语言的整数类型_Python开发【第二篇】:Python基本数据类型
- Docker版本名称YY.MM修改聚焦
- APPH系列相位噪声分析仪和VCO测试仪—输入高达40GHz