当网络非常密集时,如何使用 igraph 研究一组节点之间的交互?

How to study the interaction between a set of nodes when the network is quite dense, using igraph?

我有 4 个无向图,有 1000 个顶点和 176672、150994、193477、236060 条边。我试图查看每个图形的一组特定节点(数量为 16)之间的交互。 tkplot 中的这种可视化是不可行的,因为 1000 个顶点对它来说已经太多了。我在想是否有某种方法可以从父图中提取这 16 个节点的交互并单独查看,这样在 tkplot 中将更容易处理和使用。我不希望信息丢失,因为如果它来自 16 个预先指定的节点以外的节点,那么交互路径中的节点是什么。有办法实现吗?

在如此密集的图中,如果您仅采用连接这 16 个顶点中的每一对的最短路径,您仍然会得到一个对于 tkplot 来说太大的图,甚至在 cairo 上看不到任何有意义的东西pdf情节。 但是,如果您打算这样做,这是一种可能的方法:

require(igraph)

g <- erdos.renyi.game(n = 1000, p = 0.1)

set <- sample(1:vcount(g), 16)

in.shortest.paths <- NULL
for(v in set){
    in.shortest.paths <- c(in.shortest.paths, 
        unlist(get.all.shortest.paths(g, from = v, to = set)$res))
}

subgraph <- induced.subgraph(g, unique(in.shortest.paths))

在此示例中,subgraph 将包括大约。所有顶点的一半。

在此之后,我认为您应该考虑寻找除可视化之外的其他方法来调查您感兴趣的顶点之间的关系。它可以是一些拓扑度量,但它实际上取决于您的分析目的。