其他
igraph 牛刀小试
点击
上方
关注我们~
igraph 来把牛郎织女牵
igraph 包是可视化网络关系图的强大软件,有 python
、C语言
和 R
版本的。
安装和加载:
## Download and install the package
install.packages("igraph")
## Load package
library(igraph)
参数很多很多...。需要改哪个再去查阅会方便一些。简单画个图,可视化基因间的相互关系。
创建数据:
# 构建数据
da <- data.frame(from = rep('gene1',16),to = paste('gene',LETTERS[1:16],sep = ''),
value = seq(-2,2,length.out = 16))
da
from to value
1 gene1 geneA -2.0000000
2 gene1 geneB -1.7333333
3 gene1 geneC -1.4666667
...
转换为 igraph 对象:
# 转为网络对象
g <- graph_from_data_frame(da,directed = F)
g
IGRAPH 4449d0d UN-- 17 16 --
+ attr: name (v/c), value (e/n)
+ edges from 4449d0d (vertex names):
[1] gene1--geneA gene1--geneB gene1--geneC gene1--geneD gene1--geneE gene1--geneF gene1--geneG
[8] gene1--geneH gene1--geneI gene1--geneJ gene1--geneK gene1--geneL gene1--geneM gene1--geneN
[15] gene1--geneO gene1--geneP
# 查看属性
class(g)
[1] "igraph"
默认绘图:
# 默认绘图
plot(g)
我们可以根据格局样式
、节点
、标签
、边
、颜色
、线
等属性进行美化调整。
格局样式:layout:
节点和边的属性参数(from:生信学习手册):
接下来美化一下:
# 美化
plot(g, # 网络数据
main = 'My first Network Plot', # 标题
sub = 'By laojunjun', # 子标题
layout = layout_in_circle, # 网络样式
vertex.color = '#FFBE0F', # 节点颜色
vertex.frame.color = 'black', # 节点边框颜色
vertex.size = 25, # 节点大小
vertex.label.cex = 1.2, # 节点标签大小
edge.color = 'black', # 边颜色
edge.width = '2', # 变粗细
edge.curved = 0, # 边的弯曲程度
frame = T, # 是否加图形边框
asp = 1, # 图形的纵横比
)
给节点设置不同颜色填充:
# 设置节点不同颜色
V(g)$color <- rainbow(16)
plot(g, # 网络数据
main = 'My first Network Plot', # 标题
# sub = 'By laojunjun', # 子标题
layout = layout_in_circle, # 网络样式
# vertex.color = '#FFBE0F', # 节点颜色
vertex.frame.color = 'black', # 节点边框颜色
vertex.size = 25, # 节点大小
vertex.label.cex = 1.2, # 节点标签大小
vertex.label.color = 'black', # 节点标签颜色
edge.color = 'black', # 边颜色
edge.width = '2', # 变粗细
edge.curved = 0, # 边的弯曲程度
frame = F # 是否加图形边框
)
设置边的颜色:
# 设置边不同颜色
E(g)$color <- rainbow(16)
plot(g, # 网络数据
main = 'My first Network Plot', # 标题
layout = layout_in_circle, # 网络样式
vertex.color = '#C2F784', # 节点颜色
vertex.frame.color = 'black', # 节点边框颜色
vertex.size = 25, # 节点大小
vertex.label.cex = 1.2, # 节点标签大小
vertex.label.color = 'black', # 节点标签颜色
# edge.color = 'black', # 边颜色
edge.width = '2', # 变粗细
edge.curved = 0, # 边的弯曲程度
frame = F # 是否加图形边框
)
设置节点为渐变色:
#生成渐变色
color <- colorRampPalette(c("blue","white","red"))(16)
V(g)$color[1:16] <- color
plot(g, # 网络数据
main = 'My first Network Plot', # 标题
layout = layout_in_circle, # 网络样式
vertex.frame.color = 'black', # 节点边框颜色
vertex.size = 25, # 节点大小
vertex.label.cex = 1.2, # 节点标签大小
vertex.label.color = 'black', # 节点标签颜色
edge.color = 'black', # 边颜色
edge.width = '2', # 变粗细
edge.curved = 0, # 边的弯曲程度
)
换个展现形式:
# 换个格局
plot(g, # 网络数据
main = 'My first Network Plot', # 标题
layout = layout.sphere, # 网络样式
vertex.frame.color = 'black', # 节点边框颜色
vertex.size = 25, # 节点大小
vertex.label.cex = 1.2, # 节点标签大小
vertex.label.color = 'black', # 节点标签颜色
edge.color = 'black', # 边颜色
edge.width = '2', # 变粗细
edge.curved = 0, # 边的弯曲程度
)
根据数值大小设置节点大小:
# 根据数值大小设置节点大小
V(g)$size <- sample(15:28,16,replace = T)
plot(g, # 网络数据
main = 'My first Network Plot', # 标题
layout = layout_in_circle, # 网络样式
vertex.color = '#FFBCBC', # 节点颜色
vertex.frame.color = 'black', # 节点边框颜色
# vertex.size = 25, # 节点大小
vertex.label.cex = 1.2, # 节点标签大小
vertex.label.color = '#CE1212', # 节点标签颜色
edge.color = 'black', # 边颜色
edge.width = '2', # 变粗细
edge.curved = 0.5, # 边的弯曲程度
)
根据数值大小设置边粗细:
# 根据值大小设置边宽度
E(g)$width <- sample(1:8,16,replace = T)
plot(g, # 网络数据
main = 'My first Network Plot', # 标题
layout = layout_in_circle, # 网络样式
vertex.color = '#FFBE0F', # 节点颜色
vertex.frame.color = 'black', # 节点边框颜色
vertex.size = 25, # 节点大小
vertex.label.cex = 1.2, # 节点标签大小
vertex.label.color = 'black', # 节点标签颜色
edge.color = 'black', # 边颜色
)
好了,今天就到这里了。祝大家七夕节快乐,早日找到属于自己的另一半!
收官!
代码 我上传到 QQ 群 老俊俊生信交流群
文件夹里。欢迎加入。加我微信我也拉你进 微信群聊 老俊俊生信交流群
哦。
群二维码:
老俊俊微信:
知识星球:
所以今天你学习了吗?
欢迎小伙伴留言评论!
今天的分享就到这里了,敬请期待下一篇!
最后欢迎大家分享转发,您的点赞是对我的鼓励和肯定!
如果觉得对您帮助很大,赏杯快乐水喝喝吧!
推 荐 阅 读