什么是语言X的良好网络图库?

时间:2009-06-02 23:05:44

标签: language-agnostic graph graph-theory

我注意到一个反复出现的问题是:“什么是语言X的良好网络图库”。我和很多图书馆一起玩过,我可以与你分享我的经历。

的Python NetworkX是一个强大的库,它具有内置的可视化功能,但还具有Graphviz使用pyGraphviz的界面。 (pyGraphviz和NetworkX由同一作者撰写)。 NetworkX是开源的,非常容易使用。

的Perl Circos开发用于可视化基因组和其他高度复杂的数据集。它将始终使用圆形布局,但如果您的网络非常大并且其“模块化”分数较低,则它通常是最合适的布局。 Circos是开源的。

网络即可。: NodeXL由Microsoft Research开发,既是Excel的附加组件,也是.Net 3.5库的附加组件。它非常开放(对于微软的标准)并使用Fruchterman-Reingold算法进行可视化。

爪哇JUNG2最近已经发布,也是一个强大的库。具有扩展的可视化和关键指标支持。 JUNG2是开源的。

UbiGraph UbiGraph具有与不同语言的接口,包括Python(和NetworkX具有UbiGraph支持),Ruby,PHP,Java,C,C ++,C#,Haskell和OCaml。它使用XML-RPC服务器对网络图进行非常简洁的三维可视化。基本版是免费的,你必须支付专业版。

独立 您始终可以使用现成的软件包,例如:Graphviz(Win,Linux,OSX),Pajek(Win),UCINET(Win),甚至Visio(Win) )。

我确信还有更多的软件包,但这些是我自己使用的软件包。还有哪些其他库或包?

6 个答案:

答案 0 :(得分:8)

您应该将graph-tool添加到python列表中。它非常完整,并且使用Boost图形库在C ++中实现,使其比仅支持python的替代方案(如NetworkX)快几个数量级。

免责声明:我是图表工具的作者。 : - )

答案 1 :(得分:2)

对于 Clojure ,有loom。它的WIP但看起来不错。

答案 2 :(得分:2)

Stanford Network Analysis Project(SNAP)是用C ++编写的,其设计考虑了性能以分析大型数据集。该项目已经使用Python库进行了扩展,并且具有全面的文档。

另请注意,该项目是来自各个领域的empirical data sets的良好资源。

答案 3 :(得分:1)

在Java中,prefuse是迄今为止最好的图形绘制包。它具有非常快速的力导向布局算法,因为您可以实时调整参数并拖动节点以使图形看起来如您所愿,您将能够探索和排列比任何图形更大的图形。非交互系统。

尝试这个demo applet,你也会爱上它......

答案 4 :(得分:0)

如果您喜欢this page上的示例,请查看Mathematica的graph plotting功能。画廊页面的作者,Yifan Hu,曾经在Wolfram Research工作,在那里他为巨大的图形开发了图形绘制算法。这些算法现已集成到Mathematica中。根据您打算如何使用图形绘图,您可以通过使用Mathematica分析图形获得巨大的好处;例如,见blog post

答案 5 :(得分:0)

yFiles是一套布局算法,提供最广泛的不同自动复杂布局样式。它是商业产品,可用于几种流行的平台和语言:Javascript,Java,C#等。

有一个interactive online demo that shows many of the available algorithms,可以免费评估这些库。

免责声明:我为创建这些图书馆的公司工作,但是我不代表我的雇主。这项建议是基于我自己的意见。在过去的15年里,我已经看到了上述语言的许多不同的布局套件实现,我不知道任何其他可用的实现是否像这一样完整和可扩展。