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)