Я хочу сохранить в файле graphviz объект networkx, имеющий неуникальные узлы. Я создал неуникальные узлы в сети с использованием меток. Но он просто способен отображать узлы с неуникальными метками.
G = nx.MultiDiGraph()
G.add_node(0)
G.add_node(1)
G.add_node(2)
labels = {0: 'a', 1: 'b', 2: 'a'}
pos=nx.spring_layout(G)
nx.draw_networkx_nodes(G,pos)
nx.draw_networkx_edges(G,pos)
nx.draw_networkx_labels(MG,pos,labels,font_size=16)
Это дает возвращаемое значение последнего оператора и вывод:
return value: {0: Text(-0.6135625730904766, -0.6074010681652476, 'a'),
1: Text(0.9319946933900001, -0.3925989318347525, 'b'),
2: Text(-0.31843212029952345, 1.0, 'a')}
Есть ли способ взять этот вывод из draw_networkx_labels и использоватьэто создать файл графика. Мне нужны неуникальные узлы в выводе файла graphviz. Я пытаюсь сделать что-то вроде ниже:
x = nx.draw_networkx_labels(G,pos,labels,font_size=16)
write_dot(x, "dot.gv")
s = Source.from_file('dot.gv')
s.view()
Это выдаст ошибку, так как nx.draw_networkx_labels не возвращает объект, который он печатает выше. Если я просто использую объект G, он не будет использовать метки «a» и «b». Кроме того, существует ли более простой способ создания неуникальных узлов в сети x?