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

我注意到一个反复出现的问题是:“什么是一个好的语言X的networking图库”。 我玩过不less图书馆,我可以和你分享我的经验。

Python : NetworkX是一个强大的库,它具有内置的可视化function,但也有使用pyGraphviz的 Graphviz界面。 (pyGraphviz和NetworkX是由同一个作者编写的)。 NetworkX是开源的,非常易于使用。

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

networking : NodeXL由Microsoft Research开发,既是Excel的附加软件,又是.Net 3.5库。 它非常开放(针对微软的标准),并使用Fruchterman-Reingoldalgorithm进行可视化。

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

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

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

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

您应该将graphics工具添加到python列表中。 这是非常完整的,它在C ++中用Boost Graph Library实现,使其比像Python这样的替代品(比如NetworkX)快得多。

免责声明:我是graphics工具的作者。 🙂

Clojure有织机 。 它的WIP,但看起来不错。

斯坦福大学networking分析项目 (SNAP)是用C ++编写的,devise时考虑到了性能,可以分析大型数据集。 该项目已经扩展了一个Python库,它有全面的文档。

还要注意,该项目是来自各个领域的经验数据集的良好资源。

在Java中,prefuse是迄今为止最好的graphics绘制软件包。 它有一个非常快速的力指向布局algorithm,因为你可以实时调整参数,并拖动节点,使graphics看起来你想要的方式,你将能够探索和排列比任何更大的图非交互式系统。

试试这个演示程序 ,你也会爱上它…

如果你喜欢这个页面的例子,看看Mathematica的graphics绘图function。 画廊网页的作者胡一帆曾经为沃尔夫勒姆研究公司工作,在那里他开发了大量graphics的graphics绘制algorithm。 这些algorithm现在已经集成到Mathematica中。 根据您打算如何使用graphics绘图,您可以通过使用Mathematica分析graphics来获得巨大的收益; 看这个博客文章 。

yFiles是一套布局algorithm,提供了最广泛的不同自动复杂的布局风格。 这是一个商业产品,可用于几种stream行的平台和语言:Javascript,Java,C#等等。

有一个交互式的在线演示,显示了许多可用的algorithm ,这些库可以免费评估。

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