Python3畫圖系列——NetworkX初探


NetworkX 概述

NetworkX 主要用於創造、操作復雜網絡,以及學習復雜網絡的結構、動力學及其功能。用於分析網絡結構,建立網絡模型,設計新的網絡算法,繪制網絡等等。安裝networkx看以參見官網

NetworkX學習

關於networkx的學習可以參考如下網站:

  1. python復雜網絡庫networkx:基礎
  2. 網絡分析之networkx
  3. python 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()

小節

通過分享一些案例,目的在於供一個思路,同時也為生活中的問題解決提供知識儲備。我們不必糾結每一個知識點,當我們想使用的時候,再詳細查閱相關知識。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM