Что такое хорошая библиотека сетевого графика для языка X?
Я заметил, что повторяющийся вопрос: "Что такое хорошая библиотека сетевого графика для языка X". Я играл с довольно многими библиотеками, и я могу поделиться с вами своими впечатлениями.
Python:
NetworkX - это надежная библиотека, которая имеет встроенную визуализацию, но также имеет интерфейс Graphviz, используя pyGraphviz. (pyGraphviz и NetworkX написаны тем же автором). NetworkX является открытым исходным кодом и очень проста в использовании.
Perl:
Circos разработан для визуализации геномов и других высоко сложных наборов данных. Он всегда будет использовать круговую компоновку, но часто это наиболее подходящий макет, если ваша сеть действительно большая, а ее "коэффициент модульности" низкий. Черты с открытым исходным кодом.
Net.:
NodeXL разработан Microsoft Research и является надстройкой для Excel и библиотеки .Net 3.5. Его довольно открытый (для стандартов Microsoft) и использует алгоритм Фрухтермана-Рейнгольда для визуализации.
Java:
JUNG2 недавно был выпущен и также является надежной библиотекой. Расширенная поддержка визуализации и ключевых показателей. JUNG2 является открытым исходным кодом.
UbiGraph:
UbiGraph имеет интерфейсы для разных языков, включая Python (и NetworkX поддерживает UbiGraph), Ruby, PHP, Java, C, С++, С#, Haskell, и OCaml. Он имеет очень аккуратную трехмерную визуализацию сетевых графиков с использованием сервера XML-RPC. Базовая версия бесплатна, вам нужно заплатить за профессиональную версию.
Standalone:
Вы всегда можете использовать готовый пакет, например: Graphviz (Win, Linux, OSX), Pajek (Win), UCINET (Win) или даже Visio (Win).
Я уверен, что есть еще много пакетов, но это те, которые я использовал сам. Какие другие библиотеки или пакеты доступны?
Ответы
Ответ 1
Вы должны добавить graph-tool в список python. Это очень полно, и оно реализовано на С++ с библиотекой Boost Graph, что делает его на порядок быстрее, чем альтернативы python, такие как NetworkX.
Отказ от ответственности: я являюсь автором графического инструмента.: -)
Ответ 2
Для Clojure существует loom. Его WIP, но выглядит хорошо.
Ответ 3
Проект сетевого анализа Stanford (SNAP) был написан на С++ и разработан с учетом производительности для анализа больших наборов данных. Проект был расширен с помощью библиотеки Python и содержит исчерпывающую документацию.
Отметим также, что проект является хорошим ресурсом для эмпирических наборов данных из разных доменов.
Ответ 4
В Java prefuse является, безусловно, лучшим графическим чертежным пакетом. Он имеет очень быстрый алгоритм компоновки с силовым режимом, и поскольку вы можете настраивать параметры в реальном времени и перетаскивать узлы вокруг, чтобы получить график, который вам нужен, вы сможете исследовать и упорядочивать гораздо большие графики, интерактивная система.
Попробуйте этот демонстрационный апплет, и вы тоже полюбите его...
Ответ 5
Если вам нравятся примеры на на этой странице, посмотрите Mathematicas график. Автор страницы галереи, Ифань Ху, работал в Wolfram Research, где разработал алгоритмы графического рисования для огромных графиков. Эти алгоритмы теперь интегрированы в Mathematica. В зависимости от того, как вы собираетесь использовать графические чертежи, вы можете получить огромную выгоду, имея возможность использовать Mathematica для анализа ваших графиков; см., например, это сообщение в блоге.
Ответ 6
yFiles - это набор алгоритмов компоновки, который предлагает самый широкий диапазон различных автоматических сложных стилей макета. Это коммерческое предложение и доступно для нескольких популярных платформ и языков: Javascript, Java, С# и т.д.
Существует интерактивная онлайн-демонстрация которая показывает многие доступные алгоритмы, и библиотеки могут быть оценены бесплатно.
Отказ от ответственности: я работаю в компании, которая создает эти библиотеки, однако на SO я не представляю своего работодателя. Эта рекомендация основана на моем собственном мнении. За последние 15 лет я видел много разных реализаций макета для вышеупомянутых языков, и я не знаю ни одной другой реализации, которая будет такой же полной и расширяемой, как эта.