前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言绘制网络图

R语言绘制网络图

作者头像
一粒沙
发布2019-07-31 14:22:18
4.3K0
发布2019-07-31 14:22:18
举报
文章被收录于专栏:R语言交流中心

大家应该熟悉网络调控在基因关系之间的重要性,今天我们为大家展示在R语言中如何实现网络图的绘制。绘制的包有很多,我们今天不一一介绍从我个人角度推荐igrapgh。因为它基于Java可以介入各平台使用。

首先,看下其官网(https://igraph.org/):

接下来,我们看下其安装与使用,安装我们就不赘述了(install.packages())。主要看下如何绘制一个完整的网络图:

1. 前期数据的整理。

首先构建数据的数据框:

actors <-data.frame(name=c("Alice", "Bob", "Cecil","David",

"Esmeralda"),

age=c(48,33,45,34,21),

gender=c("F","M","F","M","F"))

以上就是数据的属性数据框。

2. 数据的关系矩阵构建:

relations <-data.frame(from=c("Bob", "Cecil", "Cecil","David",

"David", "Esmeralda"),

to=c("Alice","Bob", "Alice", "Alice", "Bob","Alice"),

same.dept=c(FALSE,FALSE,TRUE,FALSE,FALSE,TRUE),

friendship=c(4,5,5,2,1,1), advice=c(4,5,5,4,2,3))

以上就是数据中元素的相互关系,以及属性值:

接下来我们用到包中的函数graph_from_data_frame构建graph。其中主要的参数是directed确定关系的方向性。

g<-graph_from_data_frame(relations,directed=TRUE,vertices= actors)

当然相对于生成graph函数,它还提供转化回数据框的函数as_data_frame。

数据的前期准备就此结束,接下看如何绘制网络图。

3. plot函数绘制网络图。

参数详解:

lty指的网络图边的样式0-空白,1-实线,2-虚线,3-点线,4-点虚线,5-长虚线,6- twodash。

vertex.size 指的每个标签的大小,值为整数。

layout指的网络图的布局。layout.auto-自动布局,layout_as_star-星型布局,layout.circle-环形布局,layout_randomly-随机布局,layout_as_tree-树状布局。

main绘制的网络图的标题。

其他的参数类似R语言自带的plot函数。

在此我们展示下环形布局:

plot(g,vertex.size=20,layout=layout.circle,main="环形布局")

以上就是绘制网络图的过程,那么如果我们想对网络图中的点以及边进行美化,就用到了下面两个函数V(点修饰)和E(边修饰)。

V(g)$label.font <-2# 设置点标签的字体为粗体

V(g)$label.color <-"red"# 设置点标签颜色为白色

V(g)$label.cex <-1# 设置点标签字体大小

E(g)$lty<-5# 设置边为长虚线

E(g)$color<-"blue"# 设置边的颜色

plot(g,vertex.size=20,layout=layout.circle,main="环形布局")# 环形布局

更加美化的网络图还需要根据每个人的审美去绘制。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-02-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 R语言交流中心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档