鉴于assortativity是网络中心连接到其他集线器而不是外围节点的偏好,我想使用具有不同协调性的Barabasi-Albert算法生成2个无标度网络。
给出了here的一个可视化示例。
我如何“强迫”NetworkX创建一些具有相互显着不同的协同系数的无标度网络,如视觉示例中那样?
这就是我创建(无向)Barabasi-Albert网络的方式:
import networkx as nx
from pylab import *
import matplotlib.pyplot as plt
%pylab inline
n=100 #Number of nodes
ncols=10 #Number of columns in a 10x10 grid of positions
m=2 #Number of initial links
seed=[100]
for j in seed:
G=nx.barabasi_albert_graph(n, m, j)
pos = {i : (i // ncols, (n-i-1) % ncols) for i in G.nodes()}
d=G.degree().values()
avg_d=round(sum(d)/100,3)
avg_degree.append(avg_d)
edges.append(len(G.edges()))
nx.draw(G, pos, with_labels=True, nodesize=100, node_color='darkorange',font_size=10)
plt.title('Scale-Free Network (BA)')
plt.show()
#Assortativity coefficient (Pearson's rho)
r=nx.degree_pearson_correlation_coefficient(G)
此网络的协同系数为-0.2
,这意味着集线器稍微倾向于连接到外围节点。