NetworkX 概述
NetworkX 主要用於創造、操作復雜網絡,以及學習復雜網絡的結構、動力學及其功能。用於分析網絡結構,建立網絡模型,設計新的網絡算法,繪制網絡等等。安裝networkx看以參見官網 。
NetworkX學習
關於networkx的學習可以參考如下網站:
案例學習
學習案例前,請先導入下面的庫
import networkx as nx
import matplotlib.pyplot as plt
案例1
G = nx.Graph()
G.add_node(1)
G.add_edge(2, 3)
# G.add_edge(3, 2)
print("輸出全部節點:{}".format(G.nodes()))
print("輸出全部邊:{}".format(G.edges()))
print("輸出全部邊的數量:{}".format(G.number_of_edges()))
nx.draw(G)
plt.show()
輸出全部節點:[1, 2, 3]
輸出全部邊:[(2, 3)]
輸出全部邊的數量:1
案例2
G = nx.DiGraph()
G.add_node(1)
G.add_node(2)
G.add_nodes_from([3, 4, 5, 6])
G.add_cycle([1, 2, 3, 4])
G.add_edge(1, 3)
G.add_edges_from([(3, 5), (3, 6), (6, 7)])
print("輸出全部節點:{}".format(G.nodes()))
print("輸出全部邊:{}".format(G.edges()))
print("輸出全部邊的數量:{}".format(G.number_of_edges()))
nx.draw(G)
plt.show()
輸出全部節點:[1, 2, 3, 4, 5, 6, 7]
輸出全部邊:[(1, 2), (1, 3), (2, 3), (3, 4), (3, 5), (3, 6), (4, 1), (6, 7)]
輸出全部邊的數量:8
案例3
G = nx.cubical_graph()
plt.subplot(121)
nx.draw(G)
plt.subplot(122)
nx.draw(G, pos=nx.circular_layout(G), nodecolor='r', edge_color='b')
plt.show()
案例4
G = nx.path_graph(8)
nx.draw(G)
plt.show()
案例5
G = nx.cycle_graph(24)
pos = nx.spring_layout(G, iterations=200)
nx.draw(G, pos, node_color=range(24), node_size=800, cmap=plt.cm.Blues)
plt.show()
案例6
G = nx.petersen_graph()
plt.subplot(121)
nx.draw(G, with_labels=True, font_weight='bold')
plt.subplot(122)
nx.draw_shell(G, nlist=[range(5, 10), range(5)], with_labels=True, font_weight='bold')
plt.show()
小節
通過分享一些案例,目的在於供一個思路,同時也為生活中的問題解決提供知識儲備。我們不必糾結每一個知識點,當我們想使用的時候,再詳細查閱相關知識。