【我想要风一样的自由】高级网络图绘制函数

2024-12-19  本文已影响0人  KS科研分享与服务

两年半以前,我们写过多个网络图绘制。这种网络图在通路-基因关系、TF-target或者其他有对应关系的网络绘制中可应用。与网上大多数网络图一样,都是基于ggraph绘制的,ggplot2系统,可以做很多修饰调整。近期也有小伙伴问道类似的图,因为原图最麻烦的地方在于节点和边的调整,也就是layout调整,基础一般的小伙伴会出现很多问题,我实在不想再受麻烦了,所以整函数吧,只需要按照要求输入数据,其他的交给函数。同时,我们的函数要的就是自由,这个网络图的调整和layout位置上,给予了最大的自由,你随意整,爱咋排列咋排列!

首先看看函数主体:如果你实在很懒,大多数参数都给默认了,唯一要求的就是自己调节位置,数据按照我们的要求整理!

看看测试效果:完美!


library(tidyverse)
library(igraph)
library(ggraph)
library(ggplot2)

#创建数据
setwd("D:\\KS项目\\公众号文章\\网络图")

#test1
df <- read.csv("人口.csv", header = T, row.names = 1)
colnames(df) <- c("node1","node2","value")

ks_ggraph_netplot(df, 
                  node1_pos = c(unique(df$node1)),
                  node1_angle = c(0, 51, 102, 153, 204, 255, 306))

测试2,通路与基因:还是完美!!


#test2
df2 <- read.csv('network.csv', header = T, row.names = 1)
colnames(df2) <- c("node1","node2","value")
ks_ggraph_netplot(df2, 
                  node1_pos = c(unique(df2$node1)),
                  node1_text_size = 4,
                  node1_angle = c(0, 90,180,270))

TF-target关系测试,还是完美!!!


#test3
df3 <- read.csv('sce_tf.csv', header = T)
colnames(df3) <- c("node1","node2","value")
unique(df3$node1)

ks_ggraph_netplot(data=df3, 
                  node1_pos = c(unique(df3$node1)),
                  node1_text_size = 4,
                  node1_angle = c(0, 60,120,180,240, 300))



最后用老家话再说一遍: 美得很!!!

上一篇 下一篇

猜你喜欢

热点阅读