如何使用networkx模块进行社区检测?

时间:2018-04-19 14:29:46

标签: python networkx

我正在使用networkx库来解决图形优化问题。但是,当我尝试在their documentation上运行示例时,它在执行示例后在我的PyCharm IDE中说:

Traceback (most recent call last):
  File "/home/PycharmProjects/testing_things.py", line 1, in <module>
    import community
ImportError: No module named community

有谁知道如何摆脱这个错误?我使用的是Python 2.7

4 个答案:

答案 0 :(得分:0)

您的python安装似乎没有安装community

您可以通过运行来安装它:

pip install python-louvain

干杯!

答案 1 :(得分:0)

使用pip安装Python-Louvain:

pip install python_louvain

然后在脚本中直接使用以下命令导入模块:

from community import community_louvain

在您的代码中,通过以下方式使用该函数:

partition = community_louvain.best_partition(G)

答案 2 :(得分:0)

您可以使用:

conda install python_louvain

答案 3 :(得分:0)

以下是基于Louvain社区检测算法的著名空手道俱乐部图上的样本社区检测:

# Replace this with your networkx graph loading depending on your format!
r = nx.karate_club_graph()

#first compute the best partition
partition = community.best_partition(r)

#drawing
size = float(len(set(partition.values())))
pos = nx.spring_layout(r)
count = 0

for com in set(partition.values()) :
    count = count + 1.
    list_nodes = [nodes for nodes in partition.keys()
                                if partition[nodes] == com]
    nx.draw_networkx_nodes(r, pos, list_nodes, node_size = 20,
                                node_color = str(count / size))


nx.draw_networkx_edges(r, pos, alpha=0.5)
plt.show()

Louvain Community Detection Algorithm Result Visualization