我现在开始使用这个界面了,我对Python有一些经验,但没有什么广泛的经验。我正在计算一个小图的传递性和社区结构:
import networkx as nx
G = nx.read_edgelist(data, delimiter='-', nodetype=str)
nx.transitivity(G)
#find modularity
part = best_partition(G)
modularity(part, G)然而,我得到的传递性很好--在计算模块性时有以下错误。
NameError: name 'best_partition' is not defined我刚刚跟踪了networkx网站提供的文档,我做错了什么吗?
发布于 2014-06-17 03:26:01
据我所知,best_partition不是networkx的一部分。看起来您想使用https://sites.google.com/site/findcommunities/,您可以从https://bitbucket.org/taynaud/python-louvain/src安装它
一旦安装了community,请尝试以下代码:
import networkx as nx
import community
import matplotlib.pyplot as plt
G = nx.random_graphs.powerlaw_cluster_graph(300, 1, .4)
nx.transitivity(G)
#find modularity
part = community.best_partition(G)
mod = community.modularity(part,G)
#plot, color nodes using community structure
values = [part.get(node) for node in G.nodes()]
nx.draw_spring(G, cmap = plt.get_cmap('jet'), node_color = values, node_size=30, with_labels=False)
plt.show()

编辑:如何安装社区检测库的
ryan@palms ~/D/taynaud-python-louvain-147f09737714> pwd
/home/ryan/Downloads/taynaud-python-louvain-147f09737714
ryan@palms ~/D/taynaud-python-louvain-147f09737714> sudo python3 setup.py install发布于 2014-08-29 09:22:02
我只是在使用NameError: name 'best_partition' is not defined示例代码时遇到了相同的错误这。
发生此错误是因为我将python文件命名为networkx.py,然后当我们执行此程序时
import networkx as nx这个程序可以导入我们定义的networkx,而不是库。在程序中,没有定义best_partition。所以这个错误就发生了。
与库同名是不合适的。也许你该看看这个!
https://stackoverflow.com/questions/24255143
复制相似问题