【问题标题】:Plot igraph network like Gephi Force Atlas 2绘制像 Gephi Force Atlas 2 这样的 igraph 网络
【发布时间】:2016-01-15 01:00:35
【问题描述】:

我有一个具有以下特征的网络(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
            )

点击链接下载我在csvRdata中使用的数据: http://www.datafilehost.com/d/855e3e86

【问题讨论】:

  • 这个question 可能会有所帮助。您或许可以调整该方法以适合您的情况。

标签: r plot igraph gephi


【解决方案1】:

首先,获取 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" 等选项。

【讨论】:

    【解决方案2】:

    现在可以使用 R 中的代码来生成 Force Atlas 2 布局:https://github.com/adolfoalvarez/Force-Atlas-2

    布局尚未开发为包,因此您需要将代码源代码到 R 中,并使用“igraph”包。

    这个用法是:

    library(igraph)
    g <- graph.ring(100)
    layout.forceatlas2(g, iterations=10000, plotstep=500)
    

    【讨论】:

      【解决方案3】:

      现在@ciberalcito 提到的 ForceAtlas2 函数在 R 包中实现。请查看https://github.com/analyxcompany/ForceAtlas2

      【讨论】:

      • 您打算将此包提交给 CRAN 吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-18
      • 1970-01-01
      • 2017-10-05
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      相关资源
      最近更新 更多