我使用下面的代码生成了500个随机的二分网络。我想把至少10个这样的网络的度分布(用幂律线的日志图)绘制在一个地块上,以便将它们与我的无标度网络的日志图进行直观的比较。我知道如何一次绘制单个网络的度分布,但同一张图上的多个图却变得难以捉摸。如果可能的话,我也可以使用带有pearson相关系数和所有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)
}编辑:我正在寻找一个权力的法律线与学位分布。
任何帮助都是非常感谢的。谢谢大家。
发布于 2018-05-14 01:58:27
我想我在做你要找的情节。如果没有,请解释它的不同之处。
您可以绘制第一个发行版,然后使用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链接。在上面的度分布图中很容易看到这两种不同的分布。
在我看来,程度分布并不遵循幂律,既不是源和汇在一起,也不是单独的。我不知道你想要计算什么相关系数。所以在这些话题上我对你没有帮助。
https://stackoverflow.com/questions/50295874
复制相似问题