最近要处理一些与图相关的问题,就搜到了networkx包,利用这个包可以非常方便地构建图形,还可调用许多图的算法,比如判断同构,求连通分支等,以及画图和保存到文件。
官方参考文档:http://networkx.github.io/documentation/latest/index.html
文档写得还是非常清楚明白的,Examples有很多例子,Algorithms实现了很多图算法。
安装
安装所需的软件:
python-2.7.5 http://www.python.org/getit/ (安装在C:\Python27)
networkx-1.7-py2.7.egg https://pypi.python.org/pypi/networkx/
setuptools-0.6c11.win32-py2.7.exe https://pypi.python.org/pypi/setuptools#downloads (安装之后就可以使用easy_install安装egg文件)
打开dos窗口输入:
cd C:\Python27\Scripts
easy_install.exe D:\Downloads\networkx-1.7-py2.7.egg
另外最好也安装以下包:
matplotlib http://matplotlib.org/downloads.html
(python绘图包,更多画图实例见http://matplotlib.org/gallery.html,点开图片就有对应源码)
numpy和scipy http://scipy.org/Download (python科学计算包)
使用示例
最好可参考官方文档的入门教程Tutorial
其他参考:
http://blog.sciencenet.cn/home.php?mod=space&uid=404069&do=blog&id=337865
-----------------------分割线-----------------------
画图的时候要改变默认的节点label,一个很好的例子:http://networkx.github.io/documentation/latest/examples/drawing/labels_and_colors.html?highlight=draw_networkx_labels
模块networkx.algorithms.components下的函数weakly_connected_components()可求有向图的连通分量