Кто-нибудь знает о чистой реализации диаграмм направленного потока, основанной на Javascript, которую GraphViz может генерировать? Меня НЕ интересуют красивые визуальные эффекты, но вычисления для определения максимальной глубины каждого узла вместе с компоновкой линий Безье, которые оптимизированы для минимизации количества пересекающихся ребер, когда вы имеете дело с графиком, а не деревом информации. Я хотел бы запустить этот код как в браузере; Я знаю, что могу легко встроить Graphviz в свой сервер Node в качестве расширения или даже в popen()
него и передавать информацию о графах в этом .dot
формате.
Для справки, вот типичный вывод GraphViz. Обратите внимание на то, как элементы сложены и разнесены, чтобы соединительные линии могли перемещаться между узлами, не пересекаясь (очень часто) или проходя через узлы.
источник
Ответы:
Взгляните на эту чистую реализацию JavaScript средства визуализации холста .dot:
http://ushiroad.com/jsviz/
Библиотека не документирована - автору определенно следует опубликовать и задокументировать ее больше (я свяжусь с ним, чтобы предложить, по крайней мере, разместить ее на github).
Обновление : код помещен в github: https://github.com/gyuque/livizjs
Обновление (14.02.2013) : появился еще один претендент! кто заинтересован в этой теме обязательно должны взглянуть на Viz.js в пример страницы и GitHub репо .
Обновление (16.07.2020) : (семь лет спустя) http://webgraphviz.com/ тоже здорово! :-)
источник
После долгих поисков я наконец нашел ответ.
Решением было то, что кто-то скомпилировал Graphviz в Javascript с помощью llvm + emscripten. Вот ссылка:
http://viz-js.com/
Источник можно найти по адресу: https://github.com/mdaines/viz.js
А чтобы просто запустить веб-страницу, используйте:
var graphviz_text = ...; document.body.innerHTML += Viz(graphviz_text, "svg");
источник
Посмотрев на все варианты, я нашел viz.js ( https://github.com/mdaines/viz.js/ ) на основе jsviz и graphviz.js, чтобы действительно иметь API, который можно использовать с веб-страницы, и достаточно примеров для понять.
источник
Можно попробовать преобразовать graphviz в javascript, как это было сделано для примера «PDF-ридер»: https://github.com/kripken/emscripten
источник
Это не готовая замена graphviz, но d3.js - это библиотека, которая может создавать различные макеты из заданных данных и может стать отличной платформой для реализации graphviz.
Вот пример принудительно-направленных макетов, которые являются одной из форм того, что делает graphviz.
Вот речь о макетах с безумно удивительными интерактивными слайдами .
Чтобы познакомиться с проектом, уроки очень хороши.
источник
Вот кросс-компиляция Graphviz в Javascript, сделанная с использованием Emscripten
https://github.com/bpartridge/graphviz.js
источник