Цветовые узлы в соответствии с сообществами при использовании алгоритма Гирвана Ньюмана в Python - PullRequest
0 голосов
/ 27 марта 2020

В приведенном ниже коде я бы хотел раскрасить узлы в соответствии с сообществами, которые даст алгоритм girvan newman.

G = nx.karate_club_graph()
posi_gn = nx.spring_layout(G)
comp = community.girvan_newman(G)
posi_gn = nx.spring_layout(G)

nx.draw_networkx(G, posi_gn, with_labels=True,  arrows=True, font_color='gray')
plt.show()

1 Ответ

1 голос
/ 27 марта 2020

Это зависит от того, на каком уровне вы хотите определить сообщества, ie сколько сообществ вы хотите определить. Зная это, вы можете нарисовать узлы в группах, определенных сообществами:

G = nx.path_graph(10)
posi_gn = nx.spring_layout(G)
comp = nx.community.girvan_newman(G)

k = 3   # number of communities
for _ in range(k-1):
    comms = next(comp)

colors = 'rgb'
for nodes, c in zip(comms, colors):
    nx.draw_networkx_nodes(G, posi_gn, nodelist=nodes, node_color=[c], with_labels=True, arrows=True, font_color='gray')
nx.draw_networkx_edges(G, posi_gn)

Ознакомьтесь с документацией для получения дополнительной информации.

...