Вы можете раскрасить по расстоянию от центра, сначала посчитав расстояние до каждого узла от центра.nx.draw
использует sprint_layout
для позиционирования узлов, так что вы можете явно вызвать его, чтобы получить положение узлов.Позиции центрированы на (0, 0)
, поэтому вы можете просто рассчитать расстояние от центра, используя r = np.sqrt(x**2 + y**2)
:
pos = nx.spring_layout(G)
node_colors = [np.sqrt((xy**2).sum()) for xy in pos.values()]
nx.draw(G, pos, node_color=node_colors, node_size=5, edge_vmin=1, edge_vmax=2)
К вашему сведению, пример, который вы даете, скорее всего, окрашен узлами центральность между.Чтобы раскрасить по этой метрике, идея та же:
bc = nx.betweenness_centrality(G)
node_colors = list(bc.values())
nx.draw(G, node_color=node_colors)