将两个图合并为一个(添加边)R igraph

问题描述 投票:0回答:1

我是R的新手,问题可能很简单。但我自己找不到答案。

我有两个共享节点的边缘列表。我想把它们放在一个图表中。但我希望如果node1和node2在EL1和EL2中都有边,那么它们之间有两条线。并且这两行应该是不同的颜色,表明它们来自不同的边缘列表。

我已经尝试了graph.union(),但似乎即使我在graph中有两次Node1 - > Node2,它只显示一次。

r igraph
1个回答
1
投票

由于你有边缘清单,你可以只使用rbind来为组合图形制作一个大的边缘清单。您可以根据边缘的列表为边缘指定颜色。由于您没有提供任何数据,我举一个简单的例子来说明。

library(igraph)

## Example data
EL1 = matrix(c("A", "B", "B", "C", "C", "D", "D", "A"), ncol=2, byrow=T)
g1 = graph_from_edgelist(EL1)
EL2 = matrix(c("A", "B", "B", "E", "E", "A"), ncol=2, byrow=T)
g2 = graph_from_edgelist(EL2)

## Combine the graphs
BigEL = rbind(EL1, EL2)
BigG = graph_from_edgelist(BigEL)
Col = c("red", "blue")[c(rep(1, nrow(EL1)), rep(2, nrow(EL2)))]
plot(BigG, edge.color=Col)

Combined Graph

© www.soinside.com 2019 - 2024. All rights reserved.