我在阅读/创建有向图时遇到麻烦。我遵循了找到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。