Как быстро нарисовать социальную сеть с большим количеством данных (Vis js, cytoscape, sigma и vivaGraph)? - PullRequest
1 голос
/ 24 января 2020

Я должен создать социальную сеть с большим количеством данных. Я использую vis Js и сеть очень медленная.

Я пробовал следующие плагины: Cytoscape, vis Js, Vivagraph и sigma.

Проблема для Vis js, cytoscape и sigma

  • Они очень медленные

Проблема с vivaGraph

  • Я не могу отрисовать webglGraph с svgGraph, поэтому я не могу У меня много узлов и ребер, и поместите стрелку на ребро.

Преимущество vivaGraph:

Он действительно быстрый, потому что я могу рендерить график с помощью webGl. Но я не могу или не знаю, как добавить графику c с этим плагином.

С vis js:

  • Я могу быстро инициализировать график, потому что Я могу сохранить позиции в базе данных и деактивировать физику.

Проблема в том, что я не могу вносить какие-либо изменения, потому что, когда точка добавляется динамически, все остальные точки должны быть пересчитаны и это слишком долго с vis Js.

У меня есть, и я хочу что-то подобное (это сделано с vis Js): All the network enter image description here Я хочу быть в состоянии сделать это:

  1. Изменить цвет узла, края, размер, имя и т. Д. c.

  2. update и быстро сгенерируйте график с минимум 10 000 узлов.

  3. Макет, аналогичный показанному мной (если возможно, сгруппируйте их по цвету)

Итак, у меня есть два вопроса:

  1. Есть ли способ динамического добавления с помощью vis js после инициализации?

  2. Как я мог быстро сгенерировать свой график, зная, что у меня есть не менее 10 000 узлов?

Существует ли метод, позволяющий быстро сгенерировать график с хорошим макетом?

1 Ответ

0 голосов
/ 06 апреля 2020

Я нашел решение проблемы сравнения с вложенной библиотекой Vivagraph JS.

Моя задача состояла в том, чтобы построить очень большой граф (все (или частичные) транзакции bitcoin).

Я решил использовать ngrah. * модуль, эти модули очень оптимизированы для скорости.

Хорошо, введение в модули ngraph. * Находится внутри readme, но это Модули дают возможность сделать персональный рендеринг на вашем графике.

Модули:

  • ngraph.graph : необходимые модули для импорта структуры графика, такие как addNode () и addLink ().
  • ngraph.forcelayout : Создайте 2D-макет и создайте 3D-версию здесь

Существует множество субмодулей, не торопитесь, чтобы см. все.

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

  • ngraph.native : делает макет автономным, создает файл с расширением .bin.
  • ngraph.offline.layout : макет создается после загрузки графика и до его рисования. .

И вы можете нарисовать график с помощью другого подмодуля, например ngraph.pixel

Заключение

Я думаю, что это очень хорошее решение с открытым исходным кодом для рисования графика и большого графика t ссылка на мой проект и видео на YouTube.

Конфигурация

Видео можно найти на youtube

Источник моего проекта доступен здесь , возможно, он может вам помочь.

Надеюсь, мой ответ поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...