首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >R/igraph中三层(三层)的图形/网络可视化

R/igraph中三层(三层)的图形/网络可视化
EN

Stack Overflow用户
提问于 2015-03-10 21:14:52
回答 1查看 2.4K关注 0票数 5

我有一个“分层”的网络,有三个层次,比如说父母(P),孩子(C),孙子(G)。边缘总是指向年轻一代(专利->孩子->孙子或父母->孙辈)。在同一代中,顶点之间没有边。该图由3个边列表(P_C、C_G、P_C)表示。给出了一个简短的例子。

1)这种图形/网络的恰当术语是什么?三方图?因此,我认为这是一个特殊的情况,因为缺乏反向连接。

2)如何将其表示为R中的图对象?

3)我能否用一种描绘“层”的方式来绘制这个图,每组的所有顶点(P,C,GC)都在相同的x坐标上对齐,从左边的P到中间的C,以及在严格的位置上的GC?

( 4)考虑到数据的分层性质,能否检验具有这种结构的图之间的同构关系。(我知道对于正则图,它将是graph.isomorphic()函数)。

代码语言:javascript
代码运行次数:0
运行
复制
edge_P_C <- read.table(text="P C
A B
A C", header=T)

edge_C_G <- read.table(text="C G
B D
B E
C F", header=T)

edge_P_G <- read.table(text="P G
A G", header=T)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-11 00:49:40

1.任期

我想你可以说它是一个三方图,但我不确定这个词是否用于有向图。

2.创建图形

要创建一个图形对象(带有igraph ),只需对所有边缘进行rbind,并使用igraph.data.frame创建它。绑定前,列名必须匹配。

代码语言:javascript
代码运行次数:0
运行
复制
all_edges <- do.call(rbind,
  lapply( list(edge_C_G, edge_P_C, edge_P_G), function(x) setNames(x, c("1","2")) )
)

g1 <- graph.data.frame(d = all_edges, directed = TRUE)

3.阴谋

您需要在每个顶点上设置layer属性。据我理解,该层是由输入数据(三个表)隐式定义的:

代码语言:javascript
代码运行次数:0
运行
复制
v_layers_df <- unique( rbind(
  expand.grid( ID = edge_P_C$P, Layer = 1),
  expand.grid( ID = edge_P_G$P, Layer = 1),
  expand.grid( ID = edge_P_C$C, Layer = 2),
  expand.grid( ID = edge_C_G$C, Layer = 2),
  expand.grid( ID = edge_C_G$G, Layer = 3),
  expand.grid( ID = edge_P_G$G, Layer = 3)
))

v_layers <- setNames( v_layers_df$Layer, v_layers_df$ID)
V(g1)$layer <- v_layers[V(g1)$name]

对于顶点上的layer属性,您可以在自己的布局函数中使用它(修改后的Sugiyama):

代码语言:javascript
代码运行次数:0
运行
复制
layout.k_partite <- function(g) {
  l <- layout.sugiyama(g)$layout[,2:1]
  l[,1] <- V(g1)$layer
  l[,2] <- - l[,2] + 1 + max(l[,2])
  l
}

并以这种方式使用:

代码语言:javascript
代码运行次数:0
运行
复制
plot(g1, layout = layout.k_partite(g1))

4.同构

graph.isomorphic和来自igraph包的其他函数应该执行得很好。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28974206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档