Чистый эквивалент JavaScript Graphviz

Кто-нибудь знает о чистой, основанной на Javascript реализации диаграмм направленного потока, которые GraphViz способен генерировать? Я НЕ заинтересован в выводе довольно визуальных изображений, но вычисляет, чтобы определить максимальную глубину каждого node, а также макет строк безье, которые оптимизированы для минимизации числа пересекающихся ребер, когда вы имеете дело с графиком, а не с дерево информации. Я хотел бы запустить этот код как в браузере; Я знаю, что я мог легко вставлять Graphviz в мой сервер Node в качестве расширения или даже popen() и передавать информацию о графе в формате .dot.

Для справки, вот типичный вывод GraphViz. Обратите внимание, как элементы сложены и разнесены, чтобы соединительные линии перемещались между узлами, не пересекаясь (очень часто) или проходя через узлы.

enter image description here

Ответ 1

Взгляните на эту чистую реализацию JavaScript в рендерере canvas.dot:

http://ushiroad.com/jsviz/

Библиотека не задокументирована - автор определенно должен публиковать и документировать ее больше (я свяжусь с ним, чтобы предположить, что он поставил ее на github, по крайней мере).

Обновить: код был перенесен в github: https://github.com/gyuque/livizjs

Обновление (14/2/2013): появился еще один соперник! любой, кто заинтересован в этом вопросе, обязательно должен взглянуть на страницу примера и github repo.

Ответ 2

После поиска далекого и низкого я наконец нашел ответ.

Решение заключалось в том, что кто-то перекрестно скомпилировал Graphviz в Javascript, используя llvm + emscripten. Вот ссылка:

http://viz-js.com/

Источник можно найти по адресу: https://github.com/mdaines/viz.js

И чтобы просто использовать веб-страницу, используйте:

var graphviz_text = ...;
document.body.innerHTML += Viz(graphviz_text, "svg");

Ответ 3

После просмотра всех опций я нашел viz.js(https://github.com/mdaines/viz.js/), основанный на jsviz и graphviz.js, чтобы на самом деле иметь API, который можно использовать из веб-страницы и достаточно примеров для понимания.

Ответ 4

Можно попробовать преобразовать graphviz в javascript, как это было сделано для примера "PDF reader": https://github.com/kripken/emscripten

Ответ 5

Это не готовая замена Graphviz, но d3.js - это библиотека, которая может выполнять различные макеты с заданных данных и будет отличной платформой для реализации графика на.

Здесь пример силовых макетов, который является одной из форм того, что делает graphviz.

Здесь речь о макетах с безумно удивительными интерактивными слайдами.

Чтобы познакомиться с проектом, tutorials очень хороши.