Это можно сделать в NetworkX, используя networkx.algorithms.distance_measure.center()
, который возвращает список центральных узлов на графике. Ниже приведен пример, который отображает центральные узлы красным цветом.
Пример кода:
import networkx as nx
from networkx.algorithms.distance_measures import center
# Set up graph
G = nx.barbell_graph(5, 5)
# Get position using spring layout
pos = nx.spring_layout(G)
# Get center node(s)
c = center(G)
# Draw non-central nodes & all edges
nx.draw_networkx_nodes(G, pos, nodelist=set(G.nodes)-set(c))
nx.draw_networkx_edges(G, pos)
# Draw central nodes in red
nx.draw_networkx_nodes(G, pos, nodelist=c, node_color='r')
# Draw labels
nx.draw_networkx_labels(G, pos)
Вывод:
G = nx.barbell_graph(5, 5)
G = nx.complete_graph(6)