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)