igraph:在布局算法中指定权重

3
我发现了多篇文章(例如这里这里),阐述了如何通过添加边权重来修改布局。
但是当我执行

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版本3.2.2和igraph版本1.0.1,我得到了完全相同的布局。相反,我希望获得一种布局,其中较高(低)权重的边更短(长)。换句话说,通过高权重边连接的节点比通过低权重边连接的节点更接近彼此。

我做错了什么吗?


当我运行代码时,布局会稍微改变。您想要什么样的行为/布局?请详细说明。R版本3.2.0,图形版本1.0.1 - harre
1个回答

4

新的Fruchterman-Reingold布局实现(从igraph 1.0.0开始)存在/曾经存在一个错误,导致它忽略权重。这个问题已经在开发版本中得到修复,但似乎该版本尚未发布。您可以使用devtools包从Github安装开发版本:

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

确实,这是一个bug。 - CptNemo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接