【问题标题】:Maximize the plot in network visualization最大化网络可视化中的绘图
【发布时间】:2017-04-25 22:15:59
【问题描述】:

我正在制作一个包含 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)

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

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

【问题讨论】:

  • 你为什么要加载所有这些包?我想你的代码只需要igraph。你可能想看看here
  • 那是写的,我从我正在处理的代码中复制了它,忘记删除它们。

标签: r plot igraph


【解决方案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()

【讨论】:

    猜你喜欢
    • 2016-01-22
    • 2016-07-11
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 2012-06-08
    • 2014-04-22
    • 2021-02-17
    • 2011-04-16
    相关资源
    最近更新 更多