首頁  >  文章  >  後端開發  >  使用Python中的Networkx建立一個循環圖

使用Python中的Networkx建立一個循環圖

WBOY
WBOY轉載
2023-09-06 14:01:05987瀏覽

循環圖是一種特殊的圖,其中每個節點恰好有兩個鄰居,並以完整的循環方式與其他節點連接。使用 Python 的 Networkx 模組可以快速輕鬆地製作循環圖。循環圖是透過使用“networkx.cycle_graph()”函數和節點數來產生的。此圖經常用於各種應用,包括週期性現象的建模、圓形結構的表示以及循環過程的分析。由於其易用性和表示循環互動的能力,它在圖論和許多現實世界中很有用。

Python 中的 NetworkX 是什麼?

一個名為 NetworkX 的強大 Python 套件用於設計、檢查和操作複雜的網路或圖形。它提供了多種工具和技術來有效地處理圖形結構。開發人員和學者可以使用 NetworkX 快速對專案之間的互動進行建模、檢查網路特徵、找出重要節點、定位最短路徑等。由於其適應性,圖書館成為許多領域的重要資源,包括社交網路分析、交通網路、生物學和網路技術。 Python 程式設計師可以利用 NetworkX 的使用者友善介面和廣泛的功能來解決具有挑戰性的圖形相關問題,並了解更多有關資料互連的資訊。

循環圖

循環圖是一種特殊的圖,其中每個節點都恰好連接到其兩個鄰居,形成單一閉環或循環。該圖中的節點之間沒有任何分支或大量連接。此循環創建了一個圓形結構,作為循環圖的定義特徵。這是圖論中的基本思想,經常用於模擬循環或週期性事件。循環圖用於多種學科,例如化學、物理、電腦科學和社交網路研究,這些學科需要顯示和分析循環交互作用和模式。

屬性

  • 循環圖中的每個節點都恰好連接到其他兩個節點,從而創建一個沒有任何分支或死胡同的閉環。

  • 具有 n 個節點的循環圖的符號是 C_n,其中 n 代表循環的節點總數。

  • 具有 n 個節點的循環圖恰好有 n 個邊,因為每個節點都透過一條邊連接到其兩個相鄰鄰居。

  • 循環圖C_n的維度為floor(n/2)。它代表任兩個圖節點之間可能的最大分離。

  • 循環圖有兩個頂點連接和兩個邊連接,因此刪除兩者之一不會導致圖斷開連接。

  • 循環圖具有精確穿過每條邊的閉合遊走,因為它們是歐拉圖。

  • 每個循環圖 C_n 中都存在哈密頓循環,或者說恰好訪問每個節點一次的循環。

  • 循環圖可以在 2D 平面上表示,而不包含任何邊交叉,因為它們是平面圖。

  • 循環圖具有旋轉對稱性,因為它們在旋轉 360 度的任意倍數後仍保持其外觀。

  • 若n為偶數,則循環圖的色數為2,若n為奇數,則為3。

  • 循環圖在許多應用中都很有用,並且由於其簡單且定義明確的功能,可以作為更複雜的圖結構中的構建塊。

使用的方法

  • 導入模組

  • 顯示圖

導入模組

當使用 Networkx 在 Python 中建立循環圖時,術語「導入模組」是指在腳本中提供所需的庫以支援圖形的操作和視覺化。 「networkx」模組專門提供了用於創建、分析和製定圖形的工具,而可選的「matplotlib.pyplot」模組則支援圖形視覺化。透過導入這些模組,我們可以更輕鬆地建立循環圖,分析其屬性,並使用視覺化技術來更了解圖的結構和關係。這提高了我們對各種現實應用中的循環模式和過程的理解。

演算法

    新增所需的庫:

  • nx 導入“networkx”

  • 您可以將「matplotlib.pyplot」匯入為 plt 來查看圖形。

  • 建立一個循環圖物件:

  • 要產生循環圖,請使用 Networkx 的 Cycle_graph() 方法。

  • cycle_graph() 函式接受輸入 num_nodes,它表示節點總數。

  • 然後應將產生的循環圖物件指派給變數(如cycle_graph)。

  • 圖形視覺化(可選):

  • 如果需要視覺化,請建立一個佈局以使節點能夠以美觀的方式顯示(例如,pos = nx.circular_layout(cycle_graph))。

  • 根據給定的資訊和佈局,使用nx.draw()函數繪製圖形。

  • 如果您想要更好的視覺表示,請設定節點標籤、顏色和文字大小的參數。

  • 要查看循環圖,請使用 plt.show() 顯示圖形圖(假設匯入了 matplotlib)。

  • 傳回循環圖物件。

文法

import networkx as nx
import matplotlib.pyplot as plt  

def create_cycle_graph(num_nodes):
   cycle_graph = nx.cycle_graph(num_nodes)
   return cycle_graph

def visualize_graph(graph):
   pos = nx.circular_layout(graph)
   nx.draw(graph, pos, with_labels=True, node_size=1000, node_color='skyblue', 
font_size=10)
   plt.show()

if __name__ == "__main__":
   num_nodes = 5
   cycle_graph = create_cycle_graph(num_nodes)
   visualize_graph(cycle_graph)

輸出

使用Python中的Networkx建立一個循環圖

#顯示圖

「顯示圖」是指在Python中使用Networkx建構和視覺化循環圖時,在螢幕上顯示圖形視覺化的過程。使用“nx.draw()”函數以圖形方式表示循環圖,然後使用“plt.show()”命令在互動式視窗中顯示繪圖(其中“plt”是“matplotlib.pyplot”)。然後,使用者可以查看循環圖及其循環結構、節點連接和任何其他相關資料。透過使用所示的圖作為其直觀表示,可以更輕鬆地理解和分析循環圖的屬性和交互作用。

演算法

  • 為了產生和視覺化圖形,請匯入 Networkx 和 Matplotlib 函式庫。

  • 您可以使用使用者的輸入或為循環圖預先定義一定數量的節點。

  • 要建構具有所需節點數量的 Cycle Graph 對象,請使用 nx.cycle_graph() 函數。

  • 要變更圖形的外觀,請使用 nx.draw() 函數和可選參數。

  • 要在螢幕上顯示圖形,請使用 plt.show()。

範例

import networkx as nx
import matplotlib.pyplot as plt

num_nodes = int(input("Enter the number of nodes for the Cycle Graph: "))

cycle_graph = nx.cycle_graph(num_nodes)


pos = nx.circular_layout(cycle_graph)
nx.draw(cycle_graph, pos, with_labels=True, node_size=1000, 
node_color='skyblue', font_size=10)

plt.show()

輸出

使用Python中的Networkx建立一個循環圖

#結論

最後,使用Python的Networkx,我們能夠正確產生並顯示循環圖。循環圖中的每個節點恰好連接到兩個鄰居以指示閉環。借助 Networkx 強大的圖形工作工具,我們可以對各種現實世界的循環關係相關事件進行建模和分析。 Python 程式設計師可以透過使用 Networkx 的使用者友善介面和豐富的功能來檢查複雜的網路結構、定位重要節點、尋找最短路徑等。 Networkx 是圖論和各種應用學科中的有用工具,因為圖的視覺化功能有助於更好地理解循環模式和互連。

以上是使用Python中的Networkx建立一個循環圖的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除