簡體   English   中英

使用 Networkx python 將節點名稱放入圖表

[英]Put nodes names to a graph with Networkx python

我通過存儲鏈接權重的鄰接矩陣 A(numpy 矩陣)創建了一個圖 G(網絡庫)。

import numpy as np
import networkx as nx

A = np.loadtxt('SM_waste.csv',delimiter=';')
G = nx.from_numpy_matrix(A, parallel_edges=False, create_using=None)

我也有節點名稱列表,但我不知道如何將名稱分配給每個節點。 我能怎么做?

您可以遍歷節點並從行索引附加標簽。

偽造數據的示例:

import faker
import networkx as nx

for node in G.nodes():
    G.nodes[node]['name'] = faker.Faker().name()

G.nodes(data=True)

使用一些假名稱,這會為十個節點輸出一個 NodeDataView,如下所示

>>> NodeDataView({0: {'name': 'Kayla Martin'}, 1: {'name': 'Billy Knight'}, 2: {'name': 'Joshua Landry'}, 3: {'name': 'Jessica Perez'}, 4: {'name': 'Emily Garcia'}, 5: {'name': 'Stephen Foster'}, 6: {'name': 'Timothy Howell'}, 7: {'name': 'Stephanie Gonzales'}, 8: {'name': 'Maurice Miller'}, 9: {'name': 'Emily Caldwell'}, 10: {'name': 'Amy Rice'}

在您的情況下,這可能類似於:

import numpy as np
import networkx as nx

A = np.loadtxt('SM_waste.csv',delimiter=';')
G = nx.from_numpy_matrix(A, parallel_edges=False, create_using=None)

labels = ["<list of your row labels here indexed according to the adjacency matrix>"]

for idx, node in enumerate(G.nodes()):
    G.nodes[node]['label'] = labels[idx]

請注意,如果您使用data=True調用G.nodes() ,上述解決方案可能不起作用。

希望這可以幫助。

暫無
暫無

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

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