Какой лучший инструмент для визуализации (рисования вершин и ребер) графа с 1000000 вершинами? На графике около 50000 ребер. И я могу вычислить расположение отдельных вершин и ребер.
Я думаю о написании программы для генерации SVG. Любые другие предложения?
visualization
graphs
Cici
источник
источник
Ответы:
Я также предлагаю
Gephi
программное обеспечение ( https://gephi.github.io ), которое кажется довольно мощным. Некоторая дополнительная информация об использованииGephi
с большими сетями , можно найти здесь и, в более общем плане , здесь .Cytoscape
( http://www.cytoscape.org ) является альтернативойGephi
, будучи еще одной популярной платформой для комплексного сетевого анализа и визуализации.Если вы хотите работать с сетями программно (включая визуализацию) в R, Python или C / C ++, вы можете проверить
igraph
коллекцию библиотек. Говоря о R, вы можете найти интересные посты в блоге: об использовании R с Cytoscape ( http://www.vesnam.com/Rblog/viznets1 ) и об использовании R с Gephi ( http://www.vesnam.com/ Rblog / viznets2 ).Для обширных списков из анализа сети и программного обеспечения визуализации , включая некоторые сравнения и отзывы, вы можете проверить следующие страницы: 1) http://wiki.cytoscape.org/Network_analysis_links ; 2) http://www.kdnuggets.com/software/social-network-analysis.html ; 3) http://www.activatenetworks.net/social-network-analysis-sna-software-review .
источник
https://gephi.github.io/ говорит, что может обрабатывать миллион ребер. Если у вашего графа 1000000 вершин и только 50000 ребер, то у большинства ваших вершин все равно не будет ребер.
На самом деле, спецификация Gephi является двойственной из вашего примера: «Сети до 50 000 узлов и 1 000 000 ребер»
источник
Я думаю, что это
Gephi
может столкнуться с проблемами нехватки памяти, вам потребуется как минимум 8 ГБ оперативной памяти. Хотя количество ребер не очень велико.Возможно, более подходящим инструментом в этом случае будет
GraphViz
. Это инструмент командной строки для сетевых визуализаций, и, вероятно, он будет более терпимым к размеру графика. Более того, насколько я помню, вGraphViz
нем можно использовать предварительно вычисленные координаты для облегчения вычислений.Я пытался найти реальные примеры использования
GraphViz
с огромными графиками, но безуспешно. Хотя я нашел похожую дискуссию по вычислительной науке .источник
Отчитываясь: я закончил программировать graphml и использовать yEd для визуализации (просто потому, что я знаком с этой комбинацией. Бьюсь об заклад, gephi или graphviz будут работать нормально и, возможно, даже лучше). Поскольку я вычислил расположение всех узлов, память не была такой большой проблемой. Кодирование graphml немного проще по сравнению с кодированием svg, поскольку мне не нужно явно указывать расположение ребер.
источник
PajekXXL предназначен для работы с огромными сетями. Но Pajek - это своего рода странная программа с неинтуитивным интерфейсом.
источник
Я бы порекомендовал использовать Graphexp. Gephi сильно зависит от оперативной памяти вашего компьютера, которая явно ограничена. Graphexp, с другой стороны, отображает только ограниченное количество узлов, с помощью которых вы можете перемещаться к другим узлам. Я визуализировал график с 700 миллионами вершин, используя Graphexp в качестве пользовательского интерфейса и Janusgraph с HBase в качестве внутреннего хранилища. https://github.com/bricaud/graphexp
источник
Посмотрите на Graphistry , они могут обрабатывать 1Mil узлы и ребра.
источник