Python Barabasi-Albert模型的度分布

Python Barabasi-Albert模型的度分布,python,ubuntu,networkx,Python,Ubuntu,Networkx,我已经能够运行此运行: 将numpy导入为np 将networkx导入为nx 将matplotlib.pyplot作为plt导入 n=20 m=3 G_barabasi=nx.barabasi_albert_图(n,m) plt.图(figsize=(12,8)) nx.图纸(G_barabasi,节点尺寸=4) plt.show() 上面的代码能够绘制节点和边 但是,我需要获得Barabasi-Albert模型的分布度,或者更确切地说是幂律分布度。我们可以利用,它返回网络中度的频率列表,其中

我已经能够运行此运行:

将numpy导入为np
将networkx导入为nx
将matplotlib.pyplot作为plt导入
n=20
m=3
G_barabasi=nx.barabasi_albert_图(n,m)
plt.图(figsize=(12,8))
nx.图纸(G_barabasi,节点尺寸=4)
plt.show()
上面的代码能够绘制节点和边

但是,我需要获得Barabasi-Albert模型的分布度,或者更确切地说是幂律分布度。

我们可以利用,它返回网络中度的频率列表,其中度值是列表中相应的索引

在绘制度分布时,通常取
x
y
轴的对数,这有助于确定网络x(度分布遵循幂律的网络)的情况,我们可以使用:

import networkx as nx
import matplotlib.pyplot as plt

n = 2000
m = 3
G_barabasi = nx.barabasi_albert_graph(n,m)

degree_freq = nx.degree_histogram(G_barabasi)
degrees = range(len(degree_freq))
plt.figure(figsize=(12, 8)) 
plt.loglog(degrees[m:], degree_freq[m:],'go-') 
plt.xlabel('Degree')
plt.ylabel('Frequency')

非常感谢您的及时回复。非常感谢您的及时回复。我在前面学习时运行了代码,但是,这个输出对我来说不是太好,因为我无法删除这些行。下面是代码:degree\u freq=np.array(nx.degree\u histogram(G\u barabasi)).astype('float')plt.fig(figsize=(12,8))plt.stem(degree\u freq,use\u line\u collection=True)plt.ylabel(“Frequence”)plt.xlabel(“degree”)\35; use\line\u collection”关键字参数设置为True plt.show()。如何删除这些行,因为我看到这些行(垂直)你的答案不在这里。希望得到答案。感谢你使用
度数直方图
太@jimiThanks,@yatu作为回应。**但是我如何获得这个算法的日志图。我尽了我所能,但没有取得任何进展。我将感谢你的回应。**注意我使用的是plt.loglog,这需要两个轴的日志@jimi