Чистый эквивалент 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 очень хороши.
Ответ 6
Вот кросс-компиляция Graphviz для Javascript, выполненная с использованием Emscripten
https://github.com/bpartridge/graphviz.js