我发现多个帖子(例如here和here)说明了如何通过添加边缘权重来修改布局。
当我做的时候
require(igraph)
g <- graph.ring(10)
plot(g)
set.seed(28100)
E(g)$weight <- sample(1:10, 10, replace = TRUE)
E(g)$weight
# [1] 4 3 4 6 2 9 5 2 9 7
l <- layout_with_fr(g, weights=E(g)$weight)
plot(g, layout=l)
R version 3.2.2
和igraph version 1.0.1
我得到了完全相同的布局。相反,我期望获得的是一种布局,其中具有更高(更低)重量的边缘更短(更长)。换句话说,由具有较高权重的边连接的节点相对于通过低权重边连接的节点彼此更接近。
我做错了吗?
答案 0 :(得分:4)
新的Fruchterman-Reingold布局实现中存在/是一个错误(从igraph 1.0.0开始),它忽略了权重。这在开发版本中有already been fixed,但似乎此版本尚未发布。您可以使用devtools
包从Github安装开发版本:
devtools::install_github("gaborcsardi/pkgconfig")
devtools::install_github("igraph/rigraph")