Networkx: как изменить цвет и размер одних и тех же краев? - PullRequest
0 голосов
/ 04 апреля 2019

Я сгенерировал график, используя networkx

import networkx as nx
G = nx.grid_graph(dim=[5,5])
nx.draw(G);

enter image description here

Затем я вычисляю минимальный путь между двумя узлами, используя алгоритм astar

def dist(a, b):
    (x1, y1) = a
    (x2, y2) = b
    return ((x1 - x2) ** 2 + (y1 - y2) ** 2) ** 0.5
nodes = list(G.nodes)
tmp = nx.astar_path(G,nodes[3],nodes[14],dist)

Теперь я хотел бы изменить цвет и размер краев пути между узлами, где узлы определяются как tmp

tmp
[(0, 3), (1, 3), (2, 3), (2, 4)]

1 Ответ

0 голосов
/ 04 апреля 2019

Вам необходимо отобразить каждый из компонентов сети с его собственными командами.Вот рабочий код, который демонстрирует, как добиться такого графика.

import numpy as np
import matplotlib.pyplot as plt
import networkx as nx

# only relevant part is treated here
G = nx.grid_graph(dim=[5,5])

node_list = [(0, 3), (1, 3), (2, 3), (2, 4)]
edge_list = [[(0, 3), (1, 3)], [(1, 3), (2, 3)], [(2, 3), (2, 4)]]

pos = nx.spring_layout(G)
nx.draw(G, pos=pos, with_labels=True)
# draw selected nodes in green with triangle shape
nx.draw_networkx_nodes(G, pos=pos, nodelist=node_list, node_size=300, node_color='g', node_shape='^')
# draw selected edges in blue with solid line
nx.draw_networkx_edges(G, pos=pos, edgelist=edge_list, width=3.0, edge_color='blue', style='solid')

Выходной график:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...