Я использую networkx и пытаюсь найти циклы на графиках. Я написал следующий код:
import networkx as nx
import matplotlib.pyplot as plt
import pylab
tg = nx.Graph()
h_lat_dir = {1: [("A", "A"), ("B", "B"), ("A", "B")], 2: [("C", "D")],
3: [("C", "F")], 4: [("F", "F")], 5: [("C", "C"), ("C", "E"), ("D", "E"), ("E", "E")],
6: [("D", "D")]}
for wght, edgelist in h_lat_dir.iteritems():
tg.add_edges_from(edgelist, weight=wght)
print nx.cycle_basis(tg)
nx.write_dot(tg, 'multi.dot')
nx.draw_graphviz(tg)
pylab.show()
результат
[['A'], ['B'], ['C'], ['F'], ['E', 'D', 'C'], ['D'], ['E']]
и этот рисунок
Почему я не вижу self_loops? (каждая вершина по одной) Можно ли их как-то нарисовать?