最大化网络可视化中的图表

时间:2017-04-24 18:49:42

标签: r plot igraph

我正在进行大型网络可视化,包含748个顶点和2228个边。

它看起来与此处产生的情节类似:

library(networkDynamic) 
library(network) 
library(sna) 
library(intergraph) 
library(igraph)

# Set up data set.seed(123) 
g <- barabasi.game(750)

# Plot data 
  plot.igraph(g,
     margin = c(0, 0, 0, 0),
     rescale = TRUE,
     edge.arrow.size= .2,
     vertex.size = 4,
     vertex.label=NA)

enter image description here

有没有办法避免顶点聚集在一起?

我尝试设置边距,以便绘图区域可以最大化,但它不起作用。

1 个答案:

答案 0 :(得分:1)

我认为最好使用qgraph来获取Fruchterman-Reingold布局。在igraph之前也可以这样做,但在最近的版本中,算法已被重写,并且它丢失了此功能。我不想使用qgraph我在某个地方见过但不记得在哪里,对不起丢失的积分。

library(igraph)
library(qgraph)

make_fr_layout <- function(g){
    # layout with qgraph
    # g is an igraph object
    el <- get.edgelist(g, names = FALSE)
    lo <- qgraph.layout.fruchtermanreingold(el, vcount = vcount(g),
                                            area = vcount(g)^2.3,
                                            repulse.rad = vcount(g)^2.1,
                                            niter = 3000)
    lo
}

set.seed(123)
g  <- barabasi.game(750)
lo <- make_fr_layout(g)

cairo_pdf(filename = 'nice-layout.pdf')

    plot.igraph(g,
        layout = lo,
        margin = c(0, 0, 0, 0),
        rescale = TRUE,
        edge.arrow.size = .2,
        vertex.size = 4,
        vertex.label = NA)

dev.off()