Python图形库

390

我正在编写一款使用图形数据结构的Python应用程序。并不是非常复杂,但我认为某种图形/图形算法库会有所帮助。我已经搜索了一些相关资料,但没有找到特别适合我的。

请问有什么好的推荐吗?

8个回答

273
有两个优秀的选择: NetworkXigraph 我喜欢使用 NetworkX,但是我也听说过关于 igraph 的好消息。我经常使用 NetworkX 处理拥有一百万个节点的图表,没有任何问题(它的开销大约是大小为 V + E 的字典的两倍)。
如果您想进行功能比较,请参阅 Networkx-discuss 列表中的此内容: 功能比较线程

4
特别是,我喜欢Networkx的地方在于......它大部分是用Python编写的,易于编辑和理解源代码,并且感觉上大多数都是"Pythonic"。 - Gregg Lind
5
我刚刚对两者进行了评估。networkx 可以通过 pip 安装,而 igraph 不能。这使得在 setup.py 文件中将 igraph 作为依赖项更难使用。 - exhuma
3
作为2013年的更新,我会选择networkx,因为它有一个Github页面,并且似乎是所有选项中最新的。 - Matthew Turner
1
igraph还有一个GitHub页面:https://github.com/igraph/python-igraph - user_1_1_1
1
igraph可以通过pip进行安装:pip install python-igraph。 - user_1_1_1
显示剩余3条评论

119

我想推荐我的自制图形Python库:graph-tool

它非常快,因为它是使用Boost Graph Library在C++中实现的,并且包含大量算法和全面的文档。


7
graph-tool非常棒。 - Sean
5
+1 针对graph-tool。我们实验室一直在使用它。与其他Python库相比,它的速度真的很快。此外,使用graph-tool绘制和显示图形非常棒。不过编译需要很长时间! - Dilawar
5
很遗憾,没有Windows支持。 - Mike Chaliy
2
@ColonelPanic 这是一个常见问题,参见 https://graph-tool.skewed.de/download: "简短的回答是无法通过pip安装graph-tool,因为graph-tool关键依赖于一些(优秀的)C++库,如Boost,这些库无法通过pip安装。" - Tiago Peixoto
2
我很想使用它,但GPL许可证不允许我使用它 :( - Gustavo Muenz
显示剩余12条评论

33

你看过python-graph吗?虽然我自己没有使用过,但项目页面看起来很有前途。


12
此外,您可能想要查看 NetworkX

7

7

1
不错的工作,dehmann。我也首先选择了它(因为我是一名C++程序员,非常喜欢boost),但这让我感到担忧:BGL-Python绑定已不再得到维护。 <a top of page> - cpatrick
4
看一下 graph-tool,它基于 bgl 并且仍在活跃地开发。 - Sean

1

我在使用pydot方面最为顺利。其他一些工具在不同平台上,如Win 7上安装和配置起来比较困难。

http://code.google.com/p/pydot/


1

我赞同zweiterlinde的建议,使用python-graph。我已经将其作为基于图形的研究项目的基础。该库编写良好,稳定,并且具有良好的接口。作者也很快回复询问和报告。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接