R语言绘制网络图

2019-07-31 14:22:18 浏览数 (1)

大家应该熟悉网络调控在基因关系之间的重要性,今天我们为大家展示在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="环形布局")# 环形布局

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

0 人点赞