我在阅读/创建有向图时遇到麻烦。我遵循了找到here的步骤。

这是我的文本文件graph.txt:

1 2
1 3
2 5
3 4
3 5
4 5
5 6
5 10
6 7
7 8
7 9
7 12
8 9
9 10
9 11
9 12
10 11
11 7
11 12

现在,我阅读此graph.txt:
library("igraph")
xlist<-read.graph("graph.txt", format="edgelist")

然后我将其绘制:
plot(xlist)

但这不是我已读入xlist的图:

如您所见,在1-> 2、1-> 3、5-> 10等之间没有边。如何正确读取有向图?

完成此操作后,如何显示两个节点之间的所有最短路径?

最佳答案

这对我来说似乎很好:

 xlist<-read.table("graph.txt")
 xlist <- graph.data.frame(xlist)
 plot(xlist)

注意R会更改节点并将它们从零向上索引(在下面的最新igraph更新中,如下面的@Sacha Epskamp注释中所述)。
使用:
plot(xlist, vertex.label= V(xlist)$name)

您将看到所需的名称。即介于1到2之间的边。

绘制最短路径的一种方法是使用get.all.shortest.paths,然后使用它来子集图形并对其进行过度绘制。有关绘制绘图树的类似示例,请参见answer to this question

10-08 14:01