Подтвердить что ты не робот

Является ли D3.js правильным выбором для визуализации данных Neo4j Graph DB в режиме реального времени

Я являюсь студентом CS Research в UW, и моя группа пытается визуализировать определенный сетевой трафик, который помещается в базу данных neo4j в реальном времени.

Я читал о многих различных инструментах, таких как gephi, cytoscape, rickshaw (основанный на D3.js), некоторые другие и D3.js.

Мы до сих пор продвигаемся с D3.js, но хотели получить мнение сообщества. Мы не можем использовать cytoscape из-за neo4j и считаем, что D3.js будет работать лучше всего с полу-большими данными в быстрой среде реального времени.

Предложения?

Возможно, для другого вопроса, но также не стесняйтесь вводить: Лучший способ реализовать neo4j? Java, Ruby, node.js?

Спасибо!

4b9b3361

Ответ 1

Мое понимание: Gephi не справляется с обновлениями в реальном времени; он обычно используется для статических данных.

Одно важное соображение - какова визуализация, которую вы хотите представить? Это ориентированный граф? Циклический? Weighted? Дополнительные ярлыки?

Некоторые инструментальные средства "фиксируются" в том, что они могут отображать, но позволяют легко представить график. Другие (например, d3) очень расширяемы, поэтому вы можете создать что угодно.

Для формата StackOverflow вы можете получить более качественные ответы, если сможете определить ограничения и потребности вашей системы (фактическая скорость передачи данных, тонкий/толстый клиент, тип и т.д.)

Ответ 2

Там нет решения с серебряными пулями для такого рода проблем, и большинство из них зависит от того, что вы имеете в виду, команды и бюджета (денег и времени), которые у вас есть.

Я бы не рекомендовал вам D3, если вам не нужно выполнить одно из следующих действий:

  • вы хотите создать совершенно новый способ визуализации ваших данных.
  • у вас есть опытные люди в вашей команде - это может быть вы - с D3
  • у вас уже есть другие виджеты D3/viz для интеграции

Если вы не встретите ни одну из приведенных выше записей, я бы поставил D3 на сторону и сказал вам, чтобы посмотреть:

  • SigmaJS, Open Source и бесплатную библиотеку Javascript.
  • KeyLines, Инструментарий коммерческих Javascript.
  • VivaGraphJS, Open Source и бесплатная библиотека JS.

Отказ от ответственности. Я один из разработчиков KeyLines.

В зависимости от размера данных, которые вы имеете, выбор библиотеки может измениться: если вы планируете иметь не более 3/400 узлов на вашем графике и не нуждаетесь в особом стиле/анимации, тогда SigmaJS, я думаю, больше, чем штраф; если вы ищете что-то более продвинутое для стилизации или анимации, я бы порекомендовал KeyLines, потому что он предназначен для работы с такими ситуациями (с инкрементным макетом), и он не масштабируется до 2000 узлов без проблем - хотя я мог бы предложить иметь фильтр на стороне с этим размером.

Я бы назвал VivaGraph последним: SigmaJS также имеет рендеринга WebGL и обеспечивает гораздо более приятное отображение IMHO.
Вскоре VivaGraphJS будет заменен на ngraph, который будет использовать агностик для рендеринга: вы можете использовать PIXI, Fabric или что угодно.

Использование средства визуализации WebGL имеет смысл, когда вы загружаете свои ресурсы один раз и повторно используете их все время: если вы разрабатываете элементы диаграммы в режиме реального времени, это не выгодно для Canvas IMHO.

Ответ 3

проверить vivagraph, который использует webgl для рендеринга и масштабирования действительно хорошо также для больших сетей. У них есть хорошие примеры для действительно больших (FB, Amazon).

http://github.com/anvaka/VivaGraphJS

Ответ 4

Я думаю, что D3 велик, однако в последнее время на Sigma.js в FOSDEM появилась беседа, в которой объясняется, что масштабируется лучше для больших графиков. См. Также http://thewhyaxis.info/hairball/