簡體   English   中英

NetworkX圖形中所有節點之間的邊緣

[英]Edge between all nodes in NetworkX Graph

我可以在任意兩個單獨的節點之間添加一條邊,如下所示:

G.add_edge(node1, node)

但是,如果我想在任意兩個節點之間(所有節點都應該彼此相鄰)進行邊緣處理,那么當采用大量節點時,將變得很困難。

例子:如果number是結點是四個並且它們分別是1,2,3,4。則圖應如下所示 在此處輸入圖片說明

對於上面的圖,我添加節點如下:

graph = [(1, 2),(1, 3),(1, 4), (2, 3),(2, 4), (3, 4)]
for edge in graph:
        G.add_edge(edge[0], edge[1])

我的需求在圖構造中是否有任何默認選項作為參數?

基本上,我需要為給定的節點構建一個團體。

謝謝

根據您的描述,我認為您正在嘗試制作完整的圖表。 Networkx具有內置方法來創建完整的圖形。

import networkx as nx
G=nx.complete_graph(4)
G.edges()
>[(0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 3)]

如果您不希望將節點命名為0,1,2,3 ,則可以使用其他一些名稱重命名G的節點。 按照上面的命令進行操作:

nodenames = ['a', 'b', 'c', 'd']
mapping = {i:nodename for i,nodename in enumerate(nodenames)}
#now mapping looks like {0:'a', 1:'b', ...}
H=nx.relabel_nodes(G,mapping)
H.edges()
> [('a', 'c'), ('a', 'b'), ('a', 'd'), ('c', 'b'), ('c', 'd'), ('b', 'd')]

(請注意-我不喜歡用來定義mapping的dict理解-如果有人可以給我一個不需要枚舉的更直接的版本,我將不勝感激)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM