2017-04-24 37 views
0

我正在用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

有什麼辦法避免聚集在一起的頂點?

我試圖設置邊距,使繪圖區域可以最大化,但它不起作用。

+0

你爲什麼要加載所有這些軟件包?我想你的代碼只需要'igraph'。你可能想看看[這裏](http://igraph.org/r/doc/layout_.html)。 – Axeman

+0

這是寫,我從我正在工作的代碼複製,並忘記刪除它們。 –

回答

0

我認爲最好使用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()