我可以个性化节点(顶点)在网络中的位置吗?

Can I personalize the placement of nodes (vertex) in a network?

我目前正在使用 R 中的“igraph”包进行一些社交网络分析,我想知道是否有一种方法可以个性化社交网络中节点的放置。

例如,使用以下玩具代码:

    library(igraph)
    edge <- cbind(c(1,1,1,2,2,3,3,3,4),c(2,3,4,3,4,1,2,4,2),c(1,1,1,1,1,1,1,1,1))
    vertex <- c(1,2,3,4)
    g <- graph.data.frame(edge, directed=FALSE, vertices=vertex)
    plot(g)

在这种情况下,与地块相比,网络有点小 space。有什么办法可以增加节点之间的距离?此外,是否可以将节点定位在特定位置(例如(x,y))?

谢谢!

如@user20650 的评论 - 您可以将布局传递给 plot 函数

plot(g, layout=mylay)

如果要操作布局,最好的办法是先生成一些:

mylay <- layout.auto(g)

然后如果你打印 mylay,你会看到它只是一个对列表(准确地说通常是一个两列矩阵),其中这些对中的数字是节点的坐标。所以如果你想改变一个节点编号 X 的位置,你必须在布局中操作第 X 对。您也可以自己生成整个布局。有关更多信息,请参阅此文档:http://igraph.org/r/doc/layout_.html