#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)))
Выход: