У меня есть следующий код:
import networkx
grafoPetersen = {
1: [2,5,6],
2: [3,1,7],
3: [4,2,8],
4: [5,3,9],
5: [1,4,10],
6: [1,8,9],
7:[2,9,10],
8: [3,10,6],
9: [4,6,7],
10: [5,7,8]
}
for k in grafoPetersen:
grafoPetersen[k].append(-1)
grafoPetersen[k].append(-2)
grafoPetersen[-1] = list(range(1,11))
grafoPetersen[-2] = list(range(1,11))
rutaHamiltoniana = [8, 3, 4, 5, 10, 7, 2, 1, 6, 9];
g = networkx.Graph()
for k, vs in grafoPetersen.items():
for v in vs:
if v in [-1, -2] or k in [-1, -2]:
continue
if abs(rutaHamiltoniana.index(k) - rutaHamiltoniana.index(v)) == 1:
g.add_edge(k,v, color='red', width=1.5)
else:
g.add_edge(k,v, color='black', width=0.5)
posicion = networkx.circular_layout(g)
edges = g.edges()
colores = [g[u][v]['color'] for u,v in edges]
anchuras = [g[u][v]['width'] for u,v in edges]
networkx.draw(g, posicion, edges=edges, edge_color=colores, width=anchuras, with_labels = True)
И я получаю вывод как:
Мой график - это график Петерсена, и я хочу показать его как:
Но с тем же стилем я установил в первом пикте.
Я пробовал это как:
options = {
'with_labels': True,
'node_color': 'black',
'node_size': 200,
'width': 3,
}
networkx.draw_shell(g, nlist=[range(5,10), range(5)], **options)
как здесь предлагается: Как показать график, подобный графику Петерсена , но я получаю несколько ошибок.
Есть идеи, как я могу разобрать первый пикт во втором пикте, обслуживающем стили первого пикта?
<ч />
РЕДАКТИРОВАТЬ 1: Вот полный код, как я получаю путь графа Петерсена и рисую его как первый пикт: Гамильтонов путь в алгоритме графа Петерсена