我有一个包含几百个节点和边的图。断开连接的子图分离出来并很好地解决,但子图中的节点重叠并且不能很好地解析。我尝试了几种布局算法,并尝试更改布局算法中的相关参数(例如:iter,kkconst,start.temp等)。但是,我仍然无法驱散紧密集群的节点。见下图。
我希望找到一些参数来控制吸引力/排斥/重力等,但似乎没有。 bdemarest
currentTime - difference
中的答案和数字似乎确实解决了这个问题。奇怪的是,在新版本的igraph(coolexp,maxdelta,area,repulserad等)中已经弃用了几个看似有用的参数。
有没有人知道一种方法可以保持子图分离良好,同时展开密切节点,使它们不重叠?
答案 0 :(得分:12)
我设法使用包qgraph
让它工作。
这是一个有效的例子:
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()