igraph:解决紧密重叠的节点

时间:2016-09-02 11:07:20

标签: r igraph

我有一个包含几百个节点和边的图。断开连接的子图分离出来并很好地解决,但子图中的节点重叠并且不能很好地解析。我尝试了几种布局算法,并尝试更改布局算法中的相关参数(例如:iter,kkconst,start.temp等)。但是,我仍然无法驱散紧密集群的节点。见下图。

我希望找到一些参数来控制吸引力/排斥/重力等,但似乎没有。 bdemarest currentTime - difference中的答案和数字似乎确实解决了这个问题。奇怪的是,在新版本的igraph(coolexp,maxdelta,area,repulserad等)中已经弃用了几个看似有用的参数。

有没有人知道一种方法可以保持子图分离良好,同时展开密切节点,使它们不重叠?

question

1 个答案:

答案 0 :(得分:12)

我设法使用包qgraph让它工作。

enter image description here

这是一个有效的例子:

library(igraph)
library(qgraph)

g <- barabasi.game(355, directed=FALSE)

png("plot1.png", height=6, width=12, units="in", res=250)
par(mfrow=c(1, 3))

plot(g,layout=layout_with_fr,vertex.size=4,vertex.label=NA)
mtext("layout_with_fr", side=1)

e <- get.edgelist(g)
l <- qgraph.layout.fruchtermanreingold(e,vcount=vcount(g))
plot(g,layout=l,vertex.size=4,vertex.label=NA)
mtext("qgraph.layout.fruchtermanreingold default", side=1)

l <- qgraph.layout.fruchtermanreingold(e,vcount=vcount(g),
      area=8*(vcount(g)^2),repulse.rad=(vcount(g)^3.1))
plot(g,layout=l,vertex.size=4,vertex.label=NA)
mtext("qgraph.layout.fruchtermanreingold modified", side=1)

dev.off()

fig2