首頁  >  文章  >  Java  >  使用Python中的Networkx繪製完全圖

使用Python中的Networkx繪製完全圖

王林
王林轉載
2023-09-06 16:21:121175瀏覽

使用Python中的Networkx繪製完全圖

簡介

圖論中最重要的思想之一是全圖的思想。它由稱為“節點”的“點”組成,這些“點”全部透過“邊”連接。換句話說,它有更多的連結。完整圖在許多領域都非常重要,例如電腦網路、社交網路和解決最佳化問題。

Networkx 是一個強大的 Python 工具,讓程式設計師和資料科學家可以輕鬆地處理和查看複雜的圖表。使用者可以利用 Networkx 易於使用的介面和許多功能輕鬆製作、編輯、視覺化和移動圖表。正因為如此,它是了解豐富的圖論世界以及如何將其應用於資料結構和其他領域的重要工具。

安裝 Networkx

可以使用兩個最著名的套件管理器將 Networkx 加入 Python 。用於建構它們的套件稱為 pip 和 conda。無論如何,這就是讓 Networkx 啟動並運行所需的一切 -

使用 pip(適用於 Windows

  • 開啟命令列介面(例如 Windows 上的命令提示字元、Mac OS/Linux 上的終端​​)。

  • 確保您的系統上安裝了 Python。您可以透過在命令列中執行 python --version 來檢查。

  • 透過執行 pip install --upgrade pip 將 pip 更新到最新版本。

  • 要安裝 Networkx,只要輸入 pip install networkx 並按 Enter 鍵即可。

pip 現在將自動下載並安裝最新版本的 Networkx 及其相依性

使用 conda(適用於 Mac)

  • 如果您安裝了 Anaconda 或 Miniconda,請開啟終端機或 Anaconda Prompt。

  • 如果您沒有 Anaconda 或 Miniconda,請從官方網站 (https://www.anaconda.com/products/individual) 下載並安裝合適的版本。

  • 開啟 Anaconda Prompt 後,執行以下指令:conda 安裝-c conda-forge networkx。

  • conda 現在將解析依賴項並在您的系統上安裝 Networkx。

完成上述任一步驟後,Networkx 應該已成功安裝在您的電腦上,您可以開始使用它在 Python 中產生和分析圖形。

要驗證安裝,您可以透過鍵入 import networkx 將 Networkx 整合到 Python 互動式 shell 或腳本中。如果沒有錯誤,則安裝成功,您可以使用 Networkx 探索不同的圖形相關任務和演算法

建立完整的圖表

Networkx 可以輕鬆建立整個圖。完整的圖是其中有一條唯一的邊連接每對唯一的節點的圖。 Networkx 中的complete_graph() 方法可用來建構整個圖。圖中的節點數說明如何產生由五個節點組成的整個圖

import networkx as nx

# Create a complete graph with 5 nodes
complete_graph = nx.complete_graph(5)

新增節點和邊

Networkx 可以輕鬆地在圖表中新增節點和鏈接,無論圖表是否已滿。我們使用 add_node() 方法並將節點名稱作為輸入來新增單一節點。作為範例 -

Python程式碼

complete_graph.add_node(6)

add_nodes_from() 方法將節點標籤清單作為參數,這讓我們可以一次新增多個節點。包含邊緣的方法是相同的。使用 add_edge() 方法,在節點 1 和 2 之間建立連結 -

Python程式碼

complete_graph.add_edge(1, 2)

可以將元組列表(其中每個元組代表兩個節點之間的一條邊)傳遞給 add_edges_from() 方法以一次添加多個邊。

Python程式碼

edges_to_add = [(3, 4), (4, 0), (2, 3)]
complete_graph.add_edges_from(edges_to_add)

Networkx 還允許您使用權重和標籤等附加屬性自訂邊,這在許多基於圖形的用例中可能很有用。

視覺化完整圖表

理解圖表的結構和屬性需要將其整體視覺化。 Networkx 與 Matplotlib 工具包結合使用,讓圖形視覺化變得輕而易舉。 Networkx 的 draw() 方法讓我們可以建立一個綜合圖 -

Python程式碼

import matplotlib.pyplot as plt

# Draw the complete graph
nx.draw(complete_graph, with_labels=True, node_color='skyblue', node_size=800,
font_size=10)

# Show the plot
plt.show()

存取圖形資訊

Networkx 為您提供了不同的方法來取得整個圖表的重要細節。例如,我們可以使用nodes()方法來取得節點清單 -

Python程式碼

all_nodes = complete_graph.nodes()

我們可以使用edges()方法來取得邊列表

Python程式碼

all_edges = complete_graph.edges()

我們也可以使用 Degree() 方法來取得節點的度數分佈,該方法給出一個以節點為鍵、度數為值的字典

Python程式碼

degree_distribution = complete_graph.degree()

透過查看這些信息,我們可以了解很多有關整個圖的結構和屬性的信息,這對於許多使用圖的方法和應用程式來說非常重要。

應用程式

完整的圖表在現實世界中有很多用途,因為它們顯示了一切是如何連結的。它們也是理解複雜關係的好方法

  • 社交網路 - 完整的圖表顯示了小型社交群體中的人們如何相互連結。這基本上是用於小鎮或一群朋友

  • 交通系統 - 完整的交通網絡在所有地點之間具有清晰的聯繫,並透過完整的圖表顯示。他們幫助找出最佳方法並規劃基礎設施

  • 電腦網路 - 網路中的所有小工具都可以在完整的圖中直接相互通訊。它們幫助人們了解資料如何發送以及如何處理錯誤。

結論

總之,在 Python 中使用 Networkx 處理完整的圖開啟了資料結構和圖論選項的全新世界。 Networkx 為您提供了一個易於使用且有效的方法來製作、檢視和檢查完整的圖表。完整的圖表對於理解全連接網路的複雜性非常重要,這使得它們在許多現實情況中都很有用。完整的圖表顯示了連接和速度如何在從社交網路到交通系統和電腦網路的各個領域發揮作用。透過使用 Networkx 的強大功能,開發人員和研究人員可以了解更多資訊、改進系統設計並解決許多不同領域的難題。任何對基於圖形的數據分析感興趣的人都會發現使用 Python 和 Networkx 查看完整圖形是有益的。

以上是使用Python中的Networkx繪製完全圖的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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