我正在使用以下代码创建图表:
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) 来验证这一点,它显示了 6 个顶点,其 id 从 0 到 5。
我从 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)
文档的开头部分还说:
igraph 主页位于http://igraph.sourceforge.net。请特别参阅文档部分。如果您有问题或意见,请加入 igraph-help 邮件列表。