Javascript定向非循环图库? (图形可视化不是必需的)

时间:2011-07-29 17:59:14

标签: javascript graph graph-theory directed-acyclic-graphs

我有一个最好用图表表示的数据集。它由具有有向边的6或7种不同“类型”的节点组成(彼此依赖,保证不具有循环依赖性)。数据集本质上是分层配置的模板,用户需要能够从所需的不同层中选择配置的位和部分,并自动引入相关位。

一般UI需要用户从多选框中选择或取消选择项目(每个节点类型一个这样的框),并且其他框中的“依赖”项目被选中或取消选择为需要。我需要能够从服务器下拉数据集,让用户选择所需的位(在客户端的javascript中进行依赖处理以获得响应),然后在结束时将结果提交回来。 / p>

数据集非常庞大且足够复杂,实际上将其显示为图表会让用户感到压力和困惑。只需要基本的图遍历操作,因为所需要的只是将选择级联出依赖项。 (例如,如果没有其他选定节点依赖于节点,则取消选择节点的用户将导致节点依赖性变为未选中。选择节点的用户将导致所有该节点的依赖性被选中。)从起始节点开始的有向边之后的简单深度或广度优先搜索将足以访问所有受影响的节点。如果我可以跟随边缘任何方向,奖金。 (如果不是,我可以轻松生成边缘反转图并在需要时使用它。)

我在这里进行了挖掘,发现了对许多javascript图形可视化库的引用,但这些讨论中的大多数似乎都将“图形”解释为“图表”,而且我没有图表需求。我的挖掘让我进入了这个名单:Raphael,protovis,flare,D3,jsVis,Dracula和prefuse。从这个列表看起来jsVis或Dracula可能有我需要的底层图形结构,如果我只是忽略可视化方面,但是我不清楚文档是否就是这种情况。我必须排除其他一些因为我无法引入任何闪存依赖项。不幸的是,我没有时间用这么多库来制作原型。 (我将更多地挖掘jsVis和dracula,除非这里有一些方便的输入。)

如果有人对该列表中的某些内容有经验并且认为它的图形部分可以独立于可视化部分使用,那肯定会满足我的需求。如果有一些我可以使用的其他库满足我的需求,那也会很棒。关于许可的最后一个要求:库需要以非copyleft方式“免费” - 理想情况下是Apache v2.0,BSD,MIT或类似的东西。

1 个答案:

答案 0 :(得分:7)

我没有使用它,但您可能想查看data.js。它是一个MIT许可的库,具有一系列数据结构实用程序。特别是,它包含Data.NodeData.Graph

  

Data.Graph可用于表示任意复杂的对象图。对象之间的关系通过指向引用对象的链接表示。 Data.Graphs可以通过各种方式遍历。