2015-11-05 14 views
3

我发现多个帖子(例如herehere),说明如何通过添加边权重来修改版式。igraph:指定布局算法中的权重

不过,当我做

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.2igraph version 1.0.1我得到了完全相同的布局。相反,我期望获得的是一种布局,其中较高(较低)重量的边较短(较长)。换句话说,通过具有较高权重的边缘连接的节点与通过低权重边缘连接的节点彼此相对较近。

我做错了什么?

+0

布局稍有变化。你在寻找什么样的行为/布局?请详细说明。 'R版本3.2.0,图形版本1.0.1' – harre

回答

4

在新的Fruchterman-Reingold布局实现(从igraph 1.0.0开始)中存在/错误,这使得它忽略了权重。在开发版本中有already been fixed,但似乎这个版本还没有发布。您可以使用devtools安装包从GitHub开发版:当我运行的代码

devtools::install_github("gaborcsardi/pkgconfig") 
devtools::install_github("igraph/rigraph") 
+0

确实,这是一个错误。 – CptNemo