Визуализация очень больших графов ссылок

25

Я ищу инструмент для визуализации очень больших графиков направленных ссылок. В настоящее время у меня есть ~ 2 миллиона узлов с ~ 10 миллионами ребер. Я пробовал несколько разных вещей, но большинству требуются часы, чтобы даже сделать графы узлов 100k

Что я пробовал:
я провел день с Gephi, но для добавления узлов 80K требуется около часа, и приложение становится практически бесполезным.

Какие-либо предложения?

Интерактивная визуализация будет плюсом.

madmaze
источник
Это помогло бы, если бы вы заявили, что уже пробовали. Вы дали Графвизу шанс?
Вольфганг Бангерт
1
Graphviz это то, что я бы попробовал первым. Не знаю, будет ли он работать с чем-то такого размера. Очевидно, что вам понадобится что-то, что использует разреженное представление для матрицы смежности, но кажется невообразимым, что пакет программного обеспечения не будет.
Дэвид Кетчон
Я сейчас
делаю попытку
2
Вы пытались интерпретировать график как разреженную матрицу и визуализировать его с помощью функции MATLAB или Octave 'spy'? 10 миллионов ненулевых записей вполне доступны для умеренно мощных рабочих столов. Это также настроит вас на спектральное деление пополам (нахождение разделов вашего графика может облегчить вам его визуализацию).
Джек Полсон
1
ты заглянул в гости?
PyCthon

Ответы:

13

Графвиз должен работать. Я полагаю, что изображения, связанные с матрицами в коллекции разреженных матриц Университета Флориды, были визуализированы с использованием sfdp, алгоритма визуализации с направленной силой, разработанного Ифаном Ху. Большинство матриц в коллекции имеют вычислительное время, связанное с генерацией соответствующей визуализации, поэтому вы можете найти матрицы, графики которых имеют характеристики, аналогичные тем, которые вы хотите визуализировать. Например, для построения графа с ~ 2,1 миллиона узлов и ~ 3 миллионами ребер Ху ~ 36000, или 10 часов, Хотя неясно, какое оборудование использовалось для создания графика, вероятно, разумно предположить, что использовался настольный компьютер или ноутбук, и время, по крайней мере, даст вам приблизительное представление о том, сколько времени может потребоваться для визуализации графика. Алгоритм Ху, кажется, является одним из самых современных алгоритмов визуализации (он опубликовал его в 2005 году), но, не будучи экспертом в этой области, я не могу говорить о том, существуют ли лучшие алгоритмы. Этот алгоритм включен в Graphviz в качестве опции и предназначен для использования на больших графиках, таких как описанный вами.

Джефф Оксберри
источник
Очень аккуратный. Похоже, что Барнс-Хат используется для симуляции сил между узлами графа, поэтому я предполагаю, что параллельная реализация FMM может дать значительное ускорение. С другой стороны, метод Ху, похоже, имеет многоуровневую структуру, подобную MeTiS, которую трудно распараллелить.
Джек Поулсон,
Да, когда я смотрел на статью, я также думал, что параллельная реализация FMM может быть интересной, но я не был уверен, насколько это будет практично, поскольку у меня нет большого опыта работы с параллельными алгоритмами.
Джефф Оксберри
3
@JackPoulson - кашель
Арон Ахмадиа
@GeoffOxberry - см. Ссылку выше
Арон Ахмадиа
1
@JackPoulson - Вы обнаружите, что алгоритмы силового макета довольно чувствительны к начальному посеву, другие группы проделали хорошую работу, чтобы переформулировать проблему для более эстетичных макетов.
Арон Ахмадиа
7

JavaScript InfoVis Toolkit имеет аккуратный интерактивный интерфейс для аннотированных локальных просмотров графиков. Эти демоверсии могут иметь отношение к вам:

Джед браун
источник
5

Посмотрите Graphinsight 1.2, он может легко справляться с миллионами узлов, он интерактивный и в 3D.

Вы также можете разметить графы с миллионами узлов и ребер с помощью высокоэффективных алгебраических методов или методов принудительной направленности. Это доступно в пробной версии для оценки ( Отказ от ответственности: я один из авторов программы ).

www.graphinsight.com

linello
источник
1
@linelio - Спасибо за ваш ответ и добро пожаловать в scicomp! Пожалуйста, ознакомьтесь с правилами продвижения и убедитесь, что вы четко раскрываете любые личные связи при вынесении рекомендаций.
Арон Ахмадиа
5

Вот некоторые рекомендации и ссылки, собранные с течением времени:

  • Для узлов 2M трудно порекомендовать что-либо, не зная вашего аппаратного обеспечения, и, возможно, необходимо некоторое сокращение данных, но, взяв материал, который находится в свободном доступе, zGrViewer может соответствовать вашим потребностям в визуализации (требуется GraphViz).
  • Следуя идее @pyCthon, предложите вам взглянуть на VisIt для интерактивности в построении графиков.
  • Я повторно посещаю igraphпакет для статистического языка R , который включает в себя , среди прочего, аккуратные алгоритмы компоновки ( Fruchterman-Reingold и Kamada-Kawai ).
  • Библиотека больших графических макетов теперь находится на SourceForge.
Охотник на оленей
источник
0

Мы создавали http://www.github.com/graphistry/pygraphistry, чтобы сделать это в большинстве браузеров и ноутбуков. Идея состоит в том, чтобы использовать WebGL для рендеринга больших графиков (панорамирование / масштабирование и т. Д.) И перенести большую часть вычислений в реальном времени (макет, фильтр и т. Д.) В облако GPU. Он похож на Gephi или Cytoscape, но больше внимания уделяется большим графикам и анализу данных, а также интеграции в сеть и ноутбуки.

Лев Мейерович
источник
0

Вы можете попробовать "Tulip" [1], я думаю, что он может обрабатывать довольно большие графы (по крайней мере, я пробовал это с 10K до 100K узлов, и это работало хорошо).

[1] http://tulip.labri.fr/TulipDrupal/

BrunoLevy
источник