2012-07-05 63 views
9

我目前使用Graphviz来显示控制流图。基本上,(可缩减的)控制流程图是DAG加上一些指向前一层节点的边。后者的边缘不应该影响节点的位置。d3.js中的分层图

目前,dot非常整齐地绘制图形,但它缺少一种简单的方法来添加交互性(例如折叠,滚动,缩放),这对分析非常大的图形来说是无价的。因此,我选择d3.js作为最成熟和功能丰富的图形库。

我敢肯定,有一种简单的方法可以在d3.js中绘制layered graphs(与dot一样),但我似乎无法识别它。我怎么做?如果这有帮助,我已经对我的CFG执行支配者分析。

+4

看起来像有在D3挂起功能要求: https://github.com/mbostock/d3/issues/349 – whitequark

回答

5

的Dagre库向图图是渲染无关,但与d3.js很好的集成:https://github.com/cpettitt/dagre

下面是使用D3呈现一个演示:http://cpettitt.github.io/project/dagre-d3/latest/demo/interactive-demo.html

+1

我们确实已经与达格尔路线:https://github.com/evilmartians/furnace-xray – whitequark

+0

你有一个断开的链接 – Sheena

+0

这是一个链接一个Dagre D3演示:http://cpettitt.github.io/project/dagre-d3/latest/demo/interactive-demo.html – peater