在Python中使用Girvan-Newman算法时,根据社区对节点进行着色

在Python中使用Girvan-Newman算法时,根据社区对节点进行着色,python,nodes,networkx,Python,Nodes,Networkx,在下面的代码中,我想根据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(

在下面的代码中,我想根据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()

这取决于您想要定义社区的级别,即您想要定义多少社区。知道了这一点,您可以在由社区定义的组中绘制节点:

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)

查看以了解更多信息。

这取决于要定义社区的级别,即要定义多少社区。知道了这一点,您可以在由社区定义的组中绘制节点:

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)

有关更多信息,请查看。

谢谢您的回答。如果社区是10个或20个呢?您只需将社区更改为10个,而不是3个。您必须添加更多颜色或使用不同的方法(如colormap)添加颜色。你的问题是什么?每次我都会加载一个新的图形,所以我希望颜色正好是将生成的元组数量。我不确定我是否理解你的问题。增加更多的颜色会没有帮助吗?您可以使用
node\u color
cmap
参数展开列表或使用colormap方法。谢谢您的回答。如果社区是10个或20个呢?您只需将社区更改为10个,而不是3个。您必须添加更多颜色或使用不同的方法(如colormap)添加颜色。你的问题是什么?每次我都会加载一个新的图形,所以我希望颜色正好是将生成的元组数量。我不确定我是否理解你的问题。增加更多的颜色会没有帮助吗?您可以使用
node\u color
cmap
参数展开列表或使用colormap方法。