igraph包快速上手

2017 年 7 月 6 日 R语言中文社区 谢佳标

作者:谢佳标

微软中国MVP,多届中国R语言大会演讲嘉宾,目前在创梦天地担任高级数据分析师一职, 作为创梦天地数据挖掘组的负责人,带领团队对游戏数据进行深度挖掘, 主要利用R语言进行大数据的挖掘和可视化工作。 

在R中,igraph包是专门用来处理网络图的。使用之前先通过install.packages("igraph")下载安装。

igraph包非常容易创建各种常规图,其中包括无边图(make_empty_graph函数)、星形图(make_star函数)、环形图(make_ring函数)、完全图(make_full_graph函数)、树状图(make_tree函数)等图形。这些函数的用法都非常简单,读者请查阅帮助文档。

我们还有另外一种创建各种布局网络图的通用方法,就是先创建一个graph对象,然后利用plot函数绘制网络图,并通过设置layout参数来实现不同布局的效果。

> library(igraph)
> g <- graph(c(2,1,3,1,4,1,5,1,6,1,7,1),directed = F) #创建无向图g
> par(mfrow=c(2,3))
> plot(g,vertex.size=40,layout=layout_on_grid,main="简单的网格布局") # 简单的网格布局
> plot(g,vertex.size=40,layout=layout.auto,main="自动布局") #自动布局
> plot(g,vertex.size=40,layout=layout_as_star,main="星形布局") #星形布局
> plot(g,vertex.size=40,layout=layout.circle,main="环形布局") # 环形布局
> plot(g,vertex.size=40,layout=layout_randomly,main="随机布局") # 随机布局
> plot(g,vertex.size=40,layout=layout_as_tree(g),main="树状布局") # 树状布局
> par(mfrow=c(1,1))


网络关系图包括3大元素:点、边、点与边的标识。我们可以对其进行优化。

> # 对网络图g进行美化
> library(RColorBrewer)
> weight <- seq(1,3,length.out=ecount(g)) #生成边的权重
> # 方法一
> V(g)$color <- brewer.pal(9,"Set1")[1:vcount(g)] # 设置点填充颜色
> V(g)$frame.color <- NA           # 不显示点边框
> V(g)$label.color <-"white"       # 设置点标签颜色为白色
> V(g)$label.font <- 2              # 设置点标签的字体为粗体
> V(g)$label.cex <- 2              # 设置点标签字体大小
> E(g)$width <- weight             # 根据边的权重设置边的粗细
> E(g)$color <- "steelblue4"       # 设置边的颜色
> E(g)$lty <- 2                    # 设置边为虚线
> plot(g,main="对网络图g进行美化")


Gephi是专业的复杂网络分析软件,基于Java开发,使用OpenGL作为可视化引擎。所以需要在本机安装jre1.7以上版本,才能正常使用Gephi。在其主页http://gephi.org/上可以下载最新的版本,其针对Windows、Linux、Mac X系统都提供了发布版可以直接安装。

现在,我们通过Gephi工具来对某款游戏的社交性进行分析。首先新建一个项目,然后在数据资料选择中,点击输入电子表格,将节点数据集Nodes和边数据集Links导入到Gephi中:



当我们把数据导入到Gephi后,在概览的图窗口已生成一个简单网络图,右上角显示了一共有77个节点和254条边,创建的是有向图。


自动生成的网络图相对来说比较简单,我们利用左上角的外观设置来改变节点颜色。方法是在数值设定的选择一种渲染方式的下拉框中选择Group,让不同组别节点用不同颜色表示;并点击图下方的T按钮,显示节点标签。


在左下角布局功能中选择一个布局选项,我们可以在下拉框选择自己希望的网络图布局,并可以调整布局参数。


彩蛋要不要

R语言资深实战讲师谢佳标老师,继R语言十三式之后,利剑再出!

十五大案例,面向实战,案例满满,学完即用!

心血课程、口碑讲师,扬帆出发,理论结合应用,握住开启R语言实战之门金钥匙!

课程更有天善学院促销活动等你来,炎炎六月,热力绝配!

点击阅读原文扫码立即学习



登录查看更多
2

相关内容

一份简明有趣的Python学习教程,42页pdf
专知会员服务
76+阅读 · 2020年6月22日
【实用书】Python机器学习Scikit-Learn应用指南,247页pdf
专知会员服务
264+阅读 · 2020年6月10日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
234+阅读 · 2020年5月21日
Python导论,476页pdf,现代Python计算
专知会员服务
259+阅读 · 2020年5月17日
【干货书】R语言书: 编程和统计的第一课程,
专知会员服务
111+阅读 · 2020年5月9日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
163+阅读 · 2019年10月28日
R_leaflet包_最易上手地图教程(一)
R语言中文社区
10+阅读 · 2019年3月6日
34个最优秀好用的Python开源框架
专知
9+阅读 · 2019年3月1日
百度开源项目OpenRASP快速上手指南
黑客技术与网络安全
5+阅读 · 2019年2月12日
推荐一些适合小白练手的Python项目
数据挖掘入门与实战
6+阅读 · 2018年5月17日
Python 如何快速入门?
大数据技术
11+阅读 · 2018年4月9日
Python 爬虫实践:《战狼2》豆瓣影评分析
数据库开发
5+阅读 · 2018年3月19日
Python NLP入门教程
Python开发者
9+阅读 · 2017年11月19日
Python NLP 入门教程
大数据技术
19+阅读 · 2017年10月24日
Caffe 深度学习框架上手教程
黑龙江大学自然语言处理实验室
14+阅读 · 2016年6月12日
Arxiv
15+阅读 · 2019年9月11日
Arxiv
13+阅读 · 2019年1月26日
Arxiv
8+阅读 · 2018年5月15日
Arxiv
4+阅读 · 2016年12月29日
VIP会员
相关VIP内容
一份简明有趣的Python学习教程,42页pdf
专知会员服务
76+阅读 · 2020年6月22日
【实用书】Python机器学习Scikit-Learn应用指南,247页pdf
专知会员服务
264+阅读 · 2020年6月10日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
234+阅读 · 2020年5月21日
Python导论,476页pdf,现代Python计算
专知会员服务
259+阅读 · 2020年5月17日
【干货书】R语言书: 编程和统计的第一课程,
专知会员服务
111+阅读 · 2020年5月9日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
163+阅读 · 2019年10月28日
相关资讯
R_leaflet包_最易上手地图教程(一)
R语言中文社区
10+阅读 · 2019年3月6日
34个最优秀好用的Python开源框架
专知
9+阅读 · 2019年3月1日
百度开源项目OpenRASP快速上手指南
黑客技术与网络安全
5+阅读 · 2019年2月12日
推荐一些适合小白练手的Python项目
数据挖掘入门与实战
6+阅读 · 2018年5月17日
Python 如何快速入门?
大数据技术
11+阅读 · 2018年4月9日
Python 爬虫实践:《战狼2》豆瓣影评分析
数据库开发
5+阅读 · 2018年3月19日
Python NLP入门教程
Python开发者
9+阅读 · 2017年11月19日
Python NLP 入门教程
大数据技术
19+阅读 · 2017年10月24日
Caffe 深度学习框架上手教程
黑龙江大学自然语言处理实验室
14+阅读 · 2016年6月12日
Top
微信扫码咨询专知VIP会员