Как я могу добавить метки ребер из списка?

#python #networkx

Вопрос:

Я сталкиваюсь с проблемой, когда я добавляю метки ребер из списка.

Код:

 import networkx as nx
G = nx.DiGraph()

G.add_edges_from([[1, 2], [1, 3], [2, 3]])

pos=nx.spring_layout(G) 
nx.draw_networkx(G,pos)
#edge_labels = ['A', 'B', 'C']
nx.draw_networkx_edge_labels(G,pos)
 

Как мне добавить метки ребер?

Комментарии:

1. В чем проблема?

Ответ №1:

Вам нужно создать dict метку от узлов до края, а затем передать ее dict nx.draw_networkx_edge_labels , как показано ниже:

 >>> lst = [[1, 2], [1, 3], [2, 3]]
>>> edge_labels = ['A', 'B', 'C']
>>> dict(zip(map(tuple,lst), edge_labels))
{(1, 2): 'A', (1, 3): 'B', (2, 3): 'C'}
 

Весь код:

 import networkx as nx
G = nx.DiGraph()

G.add_edges_from([[1, 2], [1, 3], [2, 3]])

pos=nx.spring_layout(G) 
nx.draw_networkx(G,pos)

edge_labels = ['A', 'B', 'C']
lst = [[1, 2], [1, 3], [2, 3]]

nx.draw_networkx_edge_labels(G,pos,edge_labels=dict(zip(map(tuple,lst), edge_labels)))
 

Выход:

введите описание изображения здесь