我一直在寻找(igraph-python docs,c reference manual),我似乎无法在python-igraph模块中找到所使用的各种布局算法的代码。
在iPython中,我可以Graph.layout_kamada_kawai?
和Graph.layout_kamada_kawai??
。前者给了我类似C的文档字符串,而后者给了我__init__.py
中的几行代码,绝对不是布局算法。
如果这些算法的代码(特别是kamada_kawai
)在C核心发行版中,如果你可以指向我的源代码目录,那也很好。我在Linux上。
答案 0 :(得分:2)
我想我可能已经通过下载igraph的源代码找到了你想要的东西http://pypi.python.org/packages/source/p/python-igraph/python-igraph-0.6.5.tar.gz将它解压缩到一个临时目录然后转到终端中的python-igraph-0.6.5 / src子目录
做grep -rn layout_kamada_kawai ./
告诉我在graphobject.c文件的第6029和12925行有一个名为igraphmodule_Graph_layout_kamada_kawai的函数。
这就是你要找的地方吗?
答案 1 :(得分:2)
python-igraph只是igraph C库的包装器,所有源都在github上。您正在寻找的布局算法如下: https://github.com/igraph/igraph/blob/master/src/layout.c
实际上,其中一些,例如Kamada-Kawai刚刚在igraph的开发版本中重写。这个新版本现在完全遵循原始论文,并且比旧版本快约100倍(对于具有~500个顶点的图形)。是这里: https://github.com/igraph/igraph/blob/develop/src/layout_kk.c