ggraph做环形网络互作图---一个简单的例子

之前我们写过很多精彩的网络图帖子:

graph包:圆状网络图的绘制|互作网络图|基因通路网络图

新方法---大型网络图绘制---ggraph包

学做NAR图表:ggraph做网络图

复现《Cell stem cell》图表:STRING互作分析+igraph绘制大型蛋白互作网络图

图片复现:ggraph互作网络图

这里我们以基因互作演示一个简单的网络图示意。这个图的特点是。第一:基因按照分组展示。第二:上下调基因也区分展示出来。其实,就是一个非常简单的网络图,很基础,主要是为了熟悉下网络的设置等等。首先准备网络数据,我这里是 STRING网络分析的结果。然后设置节点数据。最后构建ggraph作图数据。ggraph作图重要的是构建好作图数据。组图就很简单了。

setwd("D:/KS项目/公众号文章/一个简单的网络图")
library(ggraph)library(tidygraph)library(ggnewscale)df <- read.csv('net.csv', header = T)#这是一个基因互作关系网络文件#接下来,为了让我们的网络图更加丰富,我们人为对这些基因进行分组等等#事实上,如果是你有用的数据,可以提前整理好文件读入from = unique(df$from)to = unique(df$to)genes <- data.frame(unique(c(from, to)))colnames(genes) <- 'gene'genes$pathway <- c(rep("MAPK",6), rep("Wnt",5), rep("JAK",6),rep("Toll",5))#这里的分组是虚构的数据genes$regulation <- c(sample(c(rep("up",12), rep("down",10))))#随机分下上下调
data <- tbl_graph(nodes = genes, edges = df)

绘图。ggraph是ggplot2的拓展包,所以作图设置和ggplot类似。不同组的基因按照不同的颜色区别,上下调基因按照节点边框颜色区分。​​​​​​​

#绘图,ggraph是ggplot的拓展包,所以当你构建好ggraph作图数据后,
​​​​​​​#剩下的和你在利用ggplot2作图没什么分别ggraph(data,layout='linear',circular = TRUE) +  geom_node_point(aes(size=8,                      fill = pathway),shape=21) +  scale_fill_manual(values = c('#4CA85F','orange','#4A90BD','#C387B8'))+  geom_node_point(aes(size=8,                      color = regulation),shape=21,stroke=2)+  scale_color_manual(values = c('black','#B11E23'))+  scale_size_continuous(range = c(30, 1))+  geom_node_text(aes(x = x*1.15,                      y=y*1.15,                     label=gene,                     angle=-((-node_angle(x, y) + 90) %% 180) + 90),                 size=3,                 hjust='outward')+  coord_cartesian(xlim=c(-1.5,1.5),ylim = c(-1.5,1.5))+  geom_edge_arc(aes(width=score),color="lightblue")+  scale_edge_width_continuous(range = c(0.5,1))+  theme_graph()

图片

本贴示例数据及详细注释代码已上传群文件,请自行下载。觉得分享有用的点个赞、分享下再走呗!

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
R语言是一种广泛应用于数据分析和统计建模的编程语言。在R语言中,可以使用多种包和函数来绘制大型网络图。下面是一种常用的方法: 1. 安装和加载相关包:首先,需要安装并加载用于网络图绘制的包,如`igraph`和`ggraph`。可以使用以下命令安装这些包: ```R install.packages("igraph") install.packages("ggraph") ``` 然后,使用以下命令加载这些包: ```R library(igraph) library(ggraph) ``` 2. 创建网络对象:使用`igraph`包中的函数创建一个网络对象。可以使用不同的方法来定义网络的节点和边。例如,可以使用节点列表和边列表来创建网络对象。以下是一个示例: ```R # 创建节点列表 nodes <- data.frame(id = c("A", "B", "C", "D")) # 创建边列表 edges <- data.frame(from = c("A", "A", "B"), to = c("B", "C", "D")) # 创建网络对象 network <- graph_from_data_frame(d = edges, vertices = nodes, directed = FALSE) ``` 3. 绘制网络图:使用`ggraph`包中的函数来绘制网络图。可以选择不同的布局算法和样式选项来定制图形的外观。以下是一个示例: ```R # 使用力导向布局算法布局网络图 layout <- create_layout(network, layout = "fr") # 绘制网络图 plot <- ggraph(layout) + geom_edge_link() + geom_node_point() + geom_node_text(aes(label = id), vjust = -1) + theme_void() # 显示网络图 plot ``` 这是一个简单的示例,你可以根据自己的需求进一步定制和调整网络图的样式和布局。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值