我正在进行大型网络可视化,包含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)
有没有办法避免顶点聚集在一起?
我尝试设置边距,以便绘图区域可以最大化,但它不起作用。
答案 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()