如何在NetworkX中创建具有不同分辨率的无标度网络?

时间:2016-07-25 14:27:41

标签: python graph networkx

鉴于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,这意味着集线器稍微倾向于连接到外围节点。

0 个答案:

没有答案