Javascript图形布局引擎

Javascript Graph Layout Engine

本文关键字:引擎 布局 图形 Javascript      更新时间:2023-09-26

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

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

像jQuery或RaphaelJS这样的库使用对我来说很好。我会使用它。我只是在寻找一些可以稍微加快速度的东西。

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

查看dagrehttps://github.com/dagrejs/dagre它现在使用D3并进行Graphviz(杉山)的布局。

看看D3(数据驱动文档)

http://d3js.org/

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

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

在线提供了许多演示,展示了如何使用yFiles中的布局。该实现提供了复杂和可配置版本的力导向算法、分层(杉山风格)、正交、树、圆形和纯边缘路由算法。此概述显示了不同的可用模块,它们可以独立于查看器和编辑器部分使用。

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

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