ER随机网络,WS小世界网络,BA无标度网络的生成
import networkx as nx
import matplotlib.pyplot as plt #ER随机网络
#10个节点,连接概率为0.6
er = nx.erdos_renyi_graph(10, 0.6)
#节点在同心圆上分布
ps = nx.shell_layout(er)
#在1*3的画板中显示于第一格
plt.subplot(131)
plt.title('ER')
nx.draw(er, ps, with_labels=True, node_color='r') #WS小世界网络
#生成10个节点,每个节点有5个邻居,随机化重连的概率为0.5
ws = nx.watts_strogatz_graph(10, 5, 0.5)
ps = nx.shell_layout(ws)
plt.subplot(132)
plt.title('WS')
nx.draw(ws, ps, with_labels=True, node_color='b') #BA无标度网络
#生成10个节点,每次加入2条边的无标度网络
ba = nx.barabasi_albert_graph(10, 5)
ps = nx.shell_layout(ba)
plt.subplot(133)
plt.title('BA')
nx.draw(ba, ps, with_labels=True, node_color='g')
plt.show()
graph到numpy的转换
#以生成的BA无标度网络为例
a = nx.to_numpy_matrix(ba)
print(a)