Javascript Graph Layout Engine

Я ищу Javascript-библиотеку/движок, который может выполнять графические макеты. (И когда я говорю макеты, я имею в виду логически позиционировать вершины красиво.) Графы, с которыми я работаю, - это все m-ary деревья. M обычно не более 5 или 6, но в некоторых случаях оно может быть больше.

У меня есть что-то, что я использую сейчас, программа Graphviz node, и она отлично работает. Проблема в том, что при запуске веб-приложения я должен отправлять запрос на сервер каждый раз, когда мне нужен макет. Предпочтительно, я хотел бы что-то, написанное в Javascript, которое можно быстро запустить на стороне клиента. Все, что нужно сделать, это предоставить информацию о макете (относительное позиционирование и многое другое). Мне не нужно это рисовать на холст или использовать SVG или что-то еще, все, что меня интересует, это макет.

Использование библиотеки как jQuery или RaphaelJS в порядке. Я буду работать с ним. Я просто ищу что-то, чтобы немного ускорить работу.

Кроме того, я бы подумал о написании своего собственного, если бы мог найти хорошее описание алгоритма для создания макетов. Но я действительно не хочу тратить слишком много времени. У меня есть что-то, что работает сейчас, поэтому получение его на стороне клиента - это просто бонус, а не необходимость.

Ответ 1

Взгляните на D3 (Data-Driven Documents)

http://d3js.org/

У них есть красивые графические макеты.

Ответ 3

http://sigmajs.org/ - это специализированная js lib для визуализации графа. Он использует Canvas вместо SVG.

Ответ 4

В коммерческом сценарии стоит обратить внимание на библиотеку yFiles for HTML. Хотя он также имеет свои возможности визуализации и редактирования, макеты также могут использоваться автономно и на момент написания, это, скорее всего, самые гибкие и сложные алгоритмы компоновки, которые вы найдете, если ищете чистые библиотеки Javascript. Конечно, сегодня есть методы, которые в основном собирают любую библиотеку (например, библиотеку GraphViz) в Javascript "blobs" , но они не предоставляют истинный API, они больше похоже на консольные приложения в браузере.

В Интернете доступно несколько демонстраций, которые показывают, что вы можете делать с макетами в yFiles. Реализация предоставляет сложные и настраиваемые версии силовых направленных алгоритмов, иерархических (стиль Sugiyama), ортогональных, древовидных, круговых и чистых алгоритмов маршрутизации. Этот обзор показывает различные доступные модули и что они могут использоваться независимо от частей зрителя и редактора.

Полное раскрытие: я работаю в компании, которая создает yFiles, но на SO я не представляю своего работодателя.