GGR图中节点的特定比例线性图
我正在使用杰出的GGRAPHE库进行实验,以描述一些很难描述的科学工作的相互关系。具体来说,我想展示基因座中的SNP-SNP相互作用。如果我把这些相互作用绘制成一个曲线图,在这个曲线图中,SNPs根据它们的基因位置以线性方式定位,那就太好了。ggraph库中的geom_edge_arc()美学将是理想的。但是,我不能根据位置来排列节点 这里有一个例子GGR图中节点的特定比例线性图,r,ggplot2,tidyverse,ggraph,R,Ggplot2,Tidyverse,Ggraph,我正在使用杰出的GGRAPHE库进行实验,以描述一些很难描述的科学工作的相互关系。具体来说,我想展示基因座中的SNP-SNP相互作用。如果我把这些相互作用绘制成一个曲线图,在这个曲线图中,SNPs根据它们的基因位置以线性方式定位,那就太好了。ggraph库中的geom_edge_arc()美学将是理想的。但是,我不能根据位置来排列节点 这里有一个例子 library(igraph) library(tidyverse) library(ggraph) set.seed(10) nodes &l
library(igraph)
library(tidyverse)
library(ggraph)
set.seed(10)
nodes <- tibble(nodes = paste("SNP",seq(1:10)), pos = sample(c(10000:20000),10))
edges <- expand.grid(nodes$nodes,nodes$nodes) %>%
mutate(interaction = rnorm(100)) %>%
filter(abs(interaction)>1)
gr <- graph_from_data_frame(edges, vertices = nodes)
ggraph(gr, 'linear', circular=F) +
geom_edge_arc(aes(edge_width=interaction))
库(igraph)
图书馆(tidyverse)
图书馆(ggraph)
种子(10)
节点%
过滤器(abs(交互作用)>1)
gr不确定这是否仍然相关,但有两种方法可以解决这个问题
正如@axeman所指出的,您可以使用手册
布局,基本上将x
和y
坐标传递给它:
ggraph(gr,
layout = 'manual',
node.position = data_frame(y = rep(0, length(nodes$pos)), x = nodes$pos)) +
geom_edge_arc(aes(edge_width=interaction))
另一种方法是超越x
aes内部geom\u edge\u弧
。为了能够将节点属性传递给aes
,我们需要使用geom\u edge\u arc2
:
ggraph(gr, 'linear', circular=F) +
geom_edge_arc2(aes(edge_width=interaction, x = node.pos))
由(v0.2.0)于2018年5月30日创建。使用布局,而不是线性
。