Я не уверен, что предмет входит в CrossValidated интерес. Вы скажете мне.
Я должен изучить граф (из теории графов ) т.е. У меня есть определенное количество точек, которые связаны между собой. У меня есть таблица со всеми точками и точками, от которых зависит каждая. (У меня есть еще одна таблица с последствиями)
Мои вопросы:
есть ли хорошее программное обеспечение (или пакет R), чтобы легко его изучить?
Есть ли простой способ отображения графика?
r
data-visualization
graph-theory
RockScience
источник
источник
Ответы:
iGraph - очень интересная библиотека на разных языках (R, Python, Ruby, C). Он позволяет вам работать с однонаправленными и ориентированными графами и имеет немало уже реализованных алгоритмов анализа.
источник
Существуют различные пакеты для представления ориентированных и ненаправленных графов, матрицы инцидентности / смежности и т. Д. В дополнение к графу ; посмотрите, например, на представление задач gR .
Для визуализации и базовых вычислений, я думаю, пакет igraph является надежным, в дополнение к Rgraphviz (на BioC, как указано @Rob). Имейте в виду, что для того, чтобы последний работал правильно, также должен быть установлен graphviz . В пакете igraph есть хорошие алгоритмы для создания хороших макетов, очень похожих на graphviz .
Вот пример использования, начиная с ложной матрицы смежности:
источник
Помимо сказанного, для одной задачи по визуализации (и вне R) вам может быть интересно проверить Gephi .
источник
Другим вариантом является пакет statnet. Statnet имеет функции для всех обычно используемых показателей в SNA, а также может оценивать модели ERG. Если у вас есть данные в списке ребер, прочитайте данные следующим образом (при условии, что ваш фрейм данных помечен как «список краев»):
Если ваши данные находятся в матрице смежности, вы заменяете аргумент matrix.type на «смежность»:
Пакет statnet обладает очень хорошими возможностями построения графиков. Чтобы сделать простой график, просто наберите:
Чтобы масштабировать узлы в соответствии с их центральностью, просто выполните:
По умолчанию функция gplot использует алгоритм Fruchterman-Reingold для размещения узлов, однако это можно контролировать с помощью опции режима, например, для использования MDS для размещения типа узлов:
или использовать макет круга:
Есть много других возможностей, и это руководство охватывает большинство основных вариантов. Для самостоятельного примера:
источник
Аналогичный вопрос был задан вопрос о cstheory, а также , если вы конкретно заинтересованы в плоских графах , или библиографической визуализации .
Gephi уже упоминался здесь, но его также рекомендовали некоторые из них, поэтому я думаю, что это хороший выбор.
Другие интересные варианты включают в себя:
источник
Я нашел NodeXL очень полезным и простым в использовании. Это шаблон MS Excel, который обеспечивает простой импорт / экспорт графика, форматирование ребер / вершин, вычисляет некоторые метрики, имеет некоторые алгоритмы кластеризации. Вы можете легко использовать пользовательские изображения в качестве вершин.
Другим полезным инструментом для меня была автоматическая разметка Microsoft Graph, которая обеспечивает хорошую разметку, которую можно попробовать онлайн (с браузером, поддерживающим SVG).
источник