我可以个性化节点(顶点)在网络中的位置吗?
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
我目前正在使用 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