2012-07-05 13 views
9

Obecnie używam Graphviz do wizualizacji wykresów przepływu sterowania. Zasadniczo, (redukowalny) wykres przepływu kontrolnego jest DAG plus niektóre krawędzie, które wskazują węzły w poprzednich warstwach. Te ostatnie krawędzie nie powinny wpływać na rozmieszczenie węzłów.Warstwowe wykresy w d3.js

Obecnie dot rysuje wykres bardzo starannie, ale nie ma w prosty sposób dodawać interakcji (na przykład składane, przewijanie, powiększanie), który jest bezcenny analizy bardzo dużych wykresów. Dlatego wybrałem d3.js jako najbardziej dojrzałą i bogatą w funkcje bibliotekę graficzną.

Jestem pewien, że istnieje łatwy sposób narysować layered graphs (podobnie jak dot) w d3.js, ale nie wydają się go rozpoznać. Jak mogę to zrobić? Jeśli to pomaga, już wykonuję analizę dominatora na mojej CFG.

+4

Wygląda istnieje oczekujące żądanie cechą D3: https://github.com/mbostock/d3/issues/349 – whitequark

Odpowiedz

5

Biblioteka Dagre dla skierowanego rysunku wykres jest rendering-agnostyk, ale dobrze integruje się z d3.js: https://github.com/cpettitt/dagre

Oto demo wygenerowana za pomocą D3: http://cpettitt.github.io/project/dagre-d3/latest/demo/interactive-demo.html

+1

Rzeczywiście poszliśmy z trasą Dagre: https://github.com/evilmartians/furnace-xray – whitequark

+0

masz zepsuty link – Sheena

+0

Oto link do Demo Dagre D3: http://cpettitt.github.io/project/dagre-d3/latest/demo/interactive-demo.html – peater