像 Gephi Force Atlas 2 一样绘制 igraph 网络
Plot igraph network like Gephi Force Atlas 2
我有一个具有以下特点的网络(igraph):
>g
IGRAPH DN-- 3370 16699 --
+ attr: name (v/c), grupo (v/n), year (v/n), grupo.freq (v/n),
grupo.perc (v/n), vertex.frame.size (v/n), color (v/c),
vertex.frame.color (v/c), grupo (e/n), year (e/n), color (e/c)
进行聚类后有以下组:
>table(V(g)$grupo)
1 2 8
1516 1367 487
我对可以突出组之间关系的视图感兴趣(V(g)$grupo)
。我使用软件 Gephi
和布局 Force Atlas 2
来制作下一张图片:
http://i.imgur.com/VbcsHtl.png
我的问题是,如何在 R 中得到类似的结果?
我正在使用以下代码:
colbar <- rainbow(length(table(V(g)$grupo)))
V(g)$color <- colbar
E(g)$color <- colbar
V(g)$vertex.frame.color <- colbar
V(g)$vertex.frame.size <- 0.1
plot.igraph(
g,
layout=layout.fruchterman.reingold.grid,
vertex.label=NA,
vertex.size=1,
edge.lty=1,
edge.arrow.size=0.0000001
)
按照link下载我在csv
或Rdata
中使用的数据:
http://www.datafilehost.com/d/855e3e86
用于生成 Force Atlas 2 布局的 R 代码现已可用:https://github.com/adolfoalvarez/Force-Atlas-2
布局尚未作为包开发,因此您需要将代码源代码导入 R,并使用 "igraph" 包。
它的用法是:
library(igraph)
g <- graph.ring(100)
layout.forceatlas2(g, iterations=10000, plotstep=500)
现在@ciberalcito提到的ForceAtlas2功能在R包中实现了。请检查 https://github.com/analyxcompany/ForceAtlas2
首先,获取 ForceAtlas2 包。
install.packages("devtools")
if (!require("ForceAtlas2")) devtools::install_github("analyxcompany/ForceAtlas2")
library("ForceAtlas2")
然后,要使用布局 l
渲染图形 g
,请执行以下操作(此处包含所有可用的布局参数):
g <- erdos.renyi.game(1000, 1/1000)
l <- layout.forceatlas2(g, directed=TRUE, iterations = 100,
linlog = FALSE, pos = NULL, nohubs = FALSE,
k = 400, gravity=1, ks=0.1, ksmax=10, delta = 1,
center=NULL, tolerance = 0.1, dim = 2,
plotstep=10, plotlabels=TRUE)
plot(g,layout=l)
如果您愿意,可以为绘图函数提供 vertex.size = 3, vertex.color = "red"
等选项。
我有一个具有以下特点的网络(igraph):
>g
IGRAPH DN-- 3370 16699 --
+ attr: name (v/c), grupo (v/n), year (v/n), grupo.freq (v/n),
grupo.perc (v/n), vertex.frame.size (v/n), color (v/c),
vertex.frame.color (v/c), grupo (e/n), year (e/n), color (e/c)
进行聚类后有以下组:
>table(V(g)$grupo)
1 2 8
1516 1367 487
我对可以突出组之间关系的视图感兴趣(V(g)$grupo)
。我使用软件 Gephi
和布局 Force Atlas 2
来制作下一张图片:
http://i.imgur.com/VbcsHtl.png
我的问题是,如何在 R 中得到类似的结果?
我正在使用以下代码:
colbar <- rainbow(length(table(V(g)$grupo)))
V(g)$color <- colbar
E(g)$color <- colbar
V(g)$vertex.frame.color <- colbar
V(g)$vertex.frame.size <- 0.1
plot.igraph(
g,
layout=layout.fruchterman.reingold.grid,
vertex.label=NA,
vertex.size=1,
edge.lty=1,
edge.arrow.size=0.0000001
)
按照link下载我在csv
或Rdata
中使用的数据:
http://www.datafilehost.com/d/855e3e86
用于生成 Force Atlas 2 布局的 R 代码现已可用:https://github.com/adolfoalvarez/Force-Atlas-2
布局尚未作为包开发,因此您需要将代码源代码导入 R,并使用 "igraph" 包。
它的用法是:
library(igraph)
g <- graph.ring(100)
layout.forceatlas2(g, iterations=10000, plotstep=500)
现在@ciberalcito提到的ForceAtlas2功能在R包中实现了。请检查 https://github.com/analyxcompany/ForceAtlas2
首先,获取 ForceAtlas2 包。
install.packages("devtools")
if (!require("ForceAtlas2")) devtools::install_github("analyxcompany/ForceAtlas2")
library("ForceAtlas2")
然后,要使用布局 l
渲染图形 g
,请执行以下操作(此处包含所有可用的布局参数):
g <- erdos.renyi.game(1000, 1/1000)
l <- layout.forceatlas2(g, directed=TRUE, iterations = 100,
linlog = FALSE, pos = NULL, nohubs = FALSE,
k = 400, gravity=1, ks=0.1, ksmax=10, delta = 1,
center=NULL, tolerance = 0.1, dim = 2,
plotstep=10, plotlabels=TRUE)
plot(g,layout=l)
如果您愿意,可以为绘图函数提供 vertex.size = 3, vertex.color = "red"
等选项。