我正在使用以下代码创建图表:
g <- graph(c(1,1, 1,4, 2,1, 2,2, 3,1, 3,4, 5,1, 5,2))
我想知道如何创建此图表,而不必执行以下额外步骤:
delete.vertices(g, 0)
图函数似乎默认为零索引顶点,因此图中存在未与任何其他顶点连接的顶点 0。我可以使用 V(g) 或简单的summary(g) 来验证这一点,它显示 id 从 0 到 5 的 6 个顶点。
最佳答案
我从 r-forge 站点访问的文档说:“顶点和边在 igraph 中具有数字顶点 id。顶点 id 始终是连续的,并且从零开始。”因此,在将向量发送到图形函数之前,您需要从该向量中减去 1。否则,您最终会得到一个未连接的“0”顶点。避免未连接的“0”顶点的一般方法是从向量中减去最小值。
> g <- graph( c(1,1, 1,4, 2,1, 2,2, 3,1, 3,4, 5,1, 5,2) -1)
> g
Vertices: 5
Edges: 8
Directed: TRUE
Edges:
[0] 0 -> 0
[1] 0 -> 3
[2] 1 -> 0
[3] 1 -> 1
[4] 2 -> 0
[5] 2 -> 3
[6] 4 -> 0
[7] 4 -> 1
> g2 <- graph( c(1,1, 1,4, 2,1, 2,2, 3,1, 3,4, 5,1, 5,2) )
> g2 <- delete.vertices(g2, 0)
> g2
Vertices: 5
Edges: 8
Directed: TRUE
Edges:
[0] 0 -> 0
[1] 0 -> 3
[2] 1 -> 0
[3] 1 -> 1
[4] 2 -> 0
[5] 2 -> 3
[6] 4 -> 0
[7] 4 -> 1
> all.equal(g,g2)
[1] TRUE
所以我怀疑你的问题可能真的是“如何使用我自己的规则来标记顶点?”。试试这个:
g <- graph( c(1,1, 1,4, 2,1, 2,2, 3,1, 3,4, 5,1, 5,2) -1)
plot(g, vertex.label=1:5)
文档的开头部分还说:
The igraph homepage is at http://igraph.sourceforge.net. See especially the documentation section. Join the igraph-help mailing list if you have questions or comments.
关于r - 防止 R igraph 添加零顶点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7293605/