12

我正在寻找可以进行图形布局的 Javascript 库/引擎。(当我说布局时,我的意思是在逻辑上很好地定位顶点。)我正在使用的图形都是 m-ary 树。M 通常不超过 5 或 6,但在某些情况下可以更大。

我确实有一些我现在使用的东西,Graphviz 的节点程序,它运行良好。问题是,在运行 Web 应用程序时,每次需要布局时,我都必须向服务器发送请求。最好,我想要一些用 Javascript 编写的可以在客户端快速运行的东西。它需要做的就是提供布局信息(相对定位等)。我不需要它来绘制画布或使用 SVG 或任何东西,我感兴趣的只是布局。

像 jQuery 或 RaphaelJS 这样的库对我来说很好。我会处理它。我只是在寻找一些东西来加快速度。

另外,如果我能找到一个很好的算法描述来做布局,我会考虑自己写。但我真的不想花太多时间。我现在有一些可以工作的东西,所以在客户端获得它只是一个奖励,而不是必需品。

4

4 回答 4

10

查看 dagre https://github.com/dagrejs/dagre它现在使用 D3 并执行 Graphviz(Sugiyama)的布局。

于 2013-03-05T05:00:50.097 回答
8

看看 D3(数据驱动文档)

http://d3js.org/

他们有一些漂亮的图形布局。

于 2012-09-04T21:40:25.490 回答
3

在商业场景中,HTML 库的 yFiles应该值得一看。尽管它还带有自己的可视化和编辑功能,但布局也可以独立使用,在撰写本文时,如果您正在寻找纯 Javascript 库,这些很可能是您会发现的最灵活和最复杂的布局算法。当然,今天有一些可用的技术基本上可以将任何库(例如 GraphViz 库)编译成Javascript“blob”,但它们不提供真正的 API,它们更像是浏览器中的控制台应用程序。

网上有许多演示,展示了您可以对 yFiles 中的布局进行哪些操作。该实现提供了力导向算法、分层(Sugiyama 风格)、正交、树、圆形和纯边缘路由算法的复杂和可配置版本。此概述显示了不同的可用模块,并且它们可以独立于查看器和编辑器部分使用。

全面披露:我为创建 yFiles 的公司工作,但我不代表我的雇主。

于 2013-10-10T14:35:48.407 回答
2

http://sigmajs.org/是一个专门用于图形可视化的 js 库。它使用 Canvas 而不是 SVG。

于 2013-01-08T12:51:57.417 回答