【问题标题】:Multiple degree distribution on the same plot同一图上的多度分布
【发布时间】:2018-05-11 15:46:21
【问题描述】:

我使用下面的代码生成了 500 个随机二分网络。我想在一个图上绘制至少 10 个这些网络的度数分布(具有幂律线的对数图),以直观地将它们与我的无标度网络的对数图进行比较。我知道如何一次绘制单个网络的度数分布,但是在同一张图上绘制多个图变得难以捉摸。此外,如果可能的话,我还可以使用带有皮尔逊相关系数和所有 500 个网络的斜率值的 Excel 表。 .

set.seed(1)
    gs1 <- list()
    for (x in seq_len(500L)) 
    {
      gs1[[x]] <- sample_bipartite(358, 27, type = "gnm",m = 827, directed = TRUE)
    }

编辑:我正在寻找具有度数分布的幂律线。

感谢任何帮助。谢谢大家。

【问题讨论】:

    标签: r plot


    【解决方案1】:

    认为我正在制作您正在寻找的情节。如果不是,请解释它有何不同。

    您可以绘制第一个分布,然后使用lines 添加到它。因为每个分布都有不同的度数,所以我将它们全部遍历一次以找到上限。

    library(igraph)
    
    ## Reproduce your data, paramterizing the number of graphs
    NumG = 500L
    set.seed(1)
    gs1 <- list()
    for (x in seq_len(NumG)) {
          gs1[[x]] <- sample_bipartite(358, 27, type = "gnm",m = 827, directed = TRUE)
    }
    
    ## Find upper limit on degrees
    MaxDeg = rep(0,NumG)
    for(i in 1:NumG) {
        DD = degree_distribution(gs1[[i]])
        MaxDeg[i] = length(DD)
    }
    MaxMax = max(MaxDeg)
    
    ## Plot first distribution
    plot(1:MaxDeg[1], degree_distribution(gs1[[1]]), 
        xlim=c(1,MaxMax), log="xy", type="l",
        xlab="Log-Degree", ylab="LogFrequency")
    
    ## Plot all the rest
    for(i in 2:NumG) {
        lines(1:MaxDeg[i], degree_distribution(gs1[[i]]), col=rainbow(NumG)[i])
    }
    

    您可以看到这两种节点的两个部分。总的来说,这些看起来相当一致。

    添加一点细节

    有两种不同类型的节点。从你的生成语句

    gs1[[x]] <- sample_bipartite(358, 27, type = "gnm",m = 827, directed = TRUE)
    

    有 358 个节点只有链接离开它们(来源)。还有 27 个节点没有离开它们的链接(Sinks)。这是列表中第一个图表 gs1[1] 的图表。

    LO = layout_as_bipartite(gs1[[1]])
    plot(gs1[[1]], layout=LO, vertex.size=8, 
        edge.arrow.size=0.3, vertex.label=NA)
    

    源在顶部,水槽在底部。这两种类型的节点具有完全不同的度分布。通过构建,您的所有图表都有 827 个链接。这些离开 358 个源并进入 27 个接收器。平均而言,每个来源将有 827/358 = 2.31 个链接。平均而言,水槽将有 858/27 = 30.63 个链接。在上面的度数分布图中很容易看到这两个不同的分布。

    在我看来,度数分布并不遵循幂律, 既不与源和汇一起,也不单独。 我不确定您要计算什么相关系数。所以我在这些话题上没有任何帮助。

    【讨论】:

    • 我还在寻找通过对数图的幂律度分布线,其中包含相关系数值和 Excel 表中所有图的斜率。谢谢你。 ——
    • 有什么方法可以保存这些图吗?我使用了 recordPLot(),但随后将其安排为网格的一部分不适合我。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-19
    • 1970-01-01
    • 2019-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多