Мультиграфы с JavaScript - PullRequest
       40

Мультиграфы с JavaScript

19 голосов
/ 29 ноября 2011

Прежде всего посмотрите на этот вопрос.

Ни одна из этих библиотек не поддерживает Мультиграфы (или псевдографы).Я имею в виду, что я не могу генерировать графики, подобные этому:

Some Multigraph

Есть ли какой-либо плагин (или библиотека javascript) для этой цели?

Я подумаля могу использовать API WolframAlpha и использовать его изображения, что-то вроде this :

enter image description here

, но у него много проблем:

  1. Я не могу перемещать узлы или добавлять и удалять края в интерактивном режиме.

  2. Только 2000 вызовов API в месяц.Недостаточно.

  3. Я не могу создать большие или промежуточные графики.

  4. Это действительно безобразно!

Пожалуйста, помогите мне, если вы знаете какую-то библиотеку javascript для рисования мультиграфов или в любом случае для создания таких графиков (что-то вроде Библиотека графов Дракулы , но с возможностью рисовать мультиграфы).

Кстати, я больше не хочу использовать Adobe Flash вместо javascript (для меня приемлемы любые другие решения)

Заранее спасибо.

Ответы [ 11 ]

10 голосов
/ 11 января 2013

Cytoscape.JS поддерживает мультиграфы, является чистым Javascript и использует новый HTML 5 Canvas для производительности.Его целью является визуализация / манипулирование графами общего назначения.

http://cytoscape.github.com/cytoscape.js/

4 голосов
/ 29 ноября 2011
3 голосов
/ 17 января 2012

Некоторые из этих библиотек визуализации графиков (упомянутые в этом вопросе) поддерживают мультиграфы и позволяют перетаскивать / размещать узлы

jsplumb: http://jsplumb.org/jquery/stateMachineDemo.html

возможно http://js -graph-it.sourceforge.net / может поддерживать мультиграфы.

но что касается вашей проблемы

4- Это действительно безобразно!

Это может не понравиться вашей эстетике.

3 голосов
/ 29 ноября 2011

Боюсь, вам придется заняться разработкой самостоятельно.Raphael.js довольно способен создавать и манипулировать svg - будет хорошей отправной точкой

2 голосов
/ 15 августа 2012

Вы можете проверить это: www.d3js.org

Вам придется многое сделать самостоятельно (создать собственный SVG и т. П.), Но библиотека очень мощная.

1 голос
/ 02 октября 2017

Вы можете проверить jsnetworkx (http://jsnetworkx.org/)

. Это js-версия библиотеки графов Python, которая поддерживает мультиграф. Она имеет функцию draw, которая визуализирует граф с помощью D3.js.доступно как для браузера, так и для node.js.

1 голос
/ 17 января 2014

В коммерческом сценарии взгляните на yFiles для HTML :

. Он легко поддерживает мультиграфы и выглядит не слишком уродливо, я считаю:

Multi-graphs - laid out automatically using yFiles for HTML

(Эти графики были построены автоматически, также возможно ручное размещение.)

Конечно, это вопроспо вкусу, так что если вам не нравится внешний вид, вы можете изменить любой аспект визуализации, как в учебник по стилю .

API предлагает полные возможности интерактивного редактирования и является чистымКонечно, на стороне клиента нет ограничения на количество вызовов API .

Большие графы все еще являются проблемой современных движков Javascript, но только если "большой" означает более тысячиэлементы.С помощью виртуализации (учитывая только то, что в данный момент отображается в окне просмотра во время рендеринга), вы можете получить хорошую производительность с тысячами элементов.

Отказ от ответственности : я работаю накомпания, которая создает библиотеку в SO / SE, однако я не представляю своего работодателя.Мои посты и комментарии мои.

1 голос
/ 26 апреля 2012

Я думаю, paper.js (http://paperjs.org) приблизит вас к этому.

1 голос
/ 29 ноября 2011

Лучше всего сделать их на сервере (или использовать в качестве апплета) с JGraphT .

1 голос
/ 29 ноября 2011

Недавно я использовал Graphviz для рисования связей между публикациями некоторых авторов. Graphviz - это программное обеспечение для визуализации графов с открытым исходным кодом. Программы верстки Graphviz принимают описания графиков на простом текстовом языке и создают диаграммы в полезных форматах, таких как изображения и SVG для веб-страниц, PDF или Postscript для включения в другие документы; или отобразить в браузере интерактивных графиков.

Например, я использовал простой DOT-файл для записи всех соединений между авторами и создал файл PNG.

http://www.graphviz.org/

Здесь есть вся необходимая документация, а в разделе галереи вы можете увидеть множество примеров вывода.

Надеюсь, это может быть полезно.

...