通过 python 生成具有幂律度分布的无标度网络
generate scale free network with power-law degree distribution by python
我写这段代码来生成具有幂律度分布的无标度网络。
import networkx as nx
import random
N = 1000
exponent = 2.2
test = [int(random.paretovariate(exponent-1)) for i in range(N)]
graph = nx.configuration_model(test)
print("number of self-loops : ", graph.number_of_selfloops())
但我遇到了这个错误:
AttributeError: 'MultiGraph' object has no attribute 'number_of_selfloops'
我不明白这是什么问题,我该如何解决。
还有其他方法可以用 networkX 生成这样的网络吗? (不想去掉自循环和多链接)
正如 configuration_model
的文档中所述,此函数 returns 一个 MultiGraph
,它没有方法 number_of_selfloops
,但您仍然可以使用 nx.number_of_selfloops
方法,它也适用于 MultiGraph
(NetworkX 改变了他们希望调用此类方法的方式)或简单地使用 non_multi_graph = nx.Graph(graph)
.
创建一个普通图形
我写这段代码来生成具有幂律度分布的无标度网络。
import networkx as nx
import random
N = 1000
exponent = 2.2
test = [int(random.paretovariate(exponent-1)) for i in range(N)]
graph = nx.configuration_model(test)
print("number of self-loops : ", graph.number_of_selfloops())
但我遇到了这个错误:
AttributeError: 'MultiGraph' object has no attribute 'number_of_selfloops'
我不明白这是什么问题,我该如何解决。 还有其他方法可以用 networkX 生成这样的网络吗? (不想去掉自循环和多链接)
正如 configuration_model
的文档中所述,此函数 returns 一个 MultiGraph
,它没有方法 number_of_selfloops
,但您仍然可以使用 nx.number_of_selfloops
方法,它也适用于 MultiGraph
(NetworkX 改变了他们希望调用此类方法的方式)或简单地使用 non_multi_graph = nx.Graph(graph)
.