Я пытаюсь получить список вершин, которые присутствуют или отсутствуют на графике 1 на другом графике 2. Мне интересно, есть ли какой-либо вспомогательный метод в igraph, чтобы сделать это, или если бы было необходимо построить собственный. Спасибо.Как получить список различий между двумя графами в igraph
ответ
Я не думаю, что внутри графика встроен метод, который делает то, что вы хотите. Тем не менее, просто сделать свой собственный.
Я собираюсь сделать разумное предположение, что уникальный идентификатор вершины - это свойство «имя», которое igraph поощряет пользователей к использованию. По существу, вы делаете два набора имен вершин в графе 1 и имена вершин в графе 2 и вычисляете их разницу. Тогда вы можете искать graph1 для вершины, которая соответствует этому имени и добавить его в список, чтобы вернуться:
def find_diff(graph1, graph2):
"""
Returns list of vertices that are present in graph1 but missing in graph2
"""
set_v1 = set(graph1.vs['name']) # set of names of vertices in graph1
set_v2 = set(graph2.vs['name']) # set of names of vertices in graph2
diff = set_v1 - set_v2
result = []
for vname in diff:
result.append(graph1.vs.find(name=vname)) # find vertex that corresponds to name in graph1 and append it to list
return result
Приведенный выше код для ясности. Вы можете сделать это быстрее и короче. Вот один лайнер:
def find_diff(graph1, graph2):
"""
Returns list of vertices that are present in graph1 but missing in graph2
"""
return [vx for vx in graph1.vs if vx['name'] not in graph2.vs['name']]
Спасибо @ gowrath! Ваше второе решение явно более подходит для моего. Я забываю упомянуть, что graph2 - это эволюция на графике1, а список вершин - потому, что я хочу построить самый большой граф с отсутствующими вершинами (фактически новыми) в другом цвете. В этом списке вершин я установил для них атрибут цвета. Полагаю, я на правильном пути, не так ли? –
@FernandoBarraza Если я правильно вас понимаю, вы хотите изменить цвет узлов в графе 1, которые не находятся в графике2? Тогда да, вы будете перебирать возвращаемый список и изменять атрибут цвета :) – gowrath
Да, это так! @gowrath, спасибо. –
- 1. Как я могу получить список различий между двумя объектными графами JavaScript?
- 2. Преобразование между igraph- и RBGL-графами?
- 3. Получение различий между двумя NSStrings
- 4. Получение различий между двумя запросами
- 5. Подсчет различий между двумя строками
- 6. Поиск различий между двумя файлами
- 7. Копирование различий между двумя файлами в unix
- 8. Как работать с многочастными графами в NetworkX или igraph?
- 9. Git различий между двумя тегами с именем
- 10. В Darcs, вид различий между двумя участками
- 11. Datepicker различий между двумя датами неудовлетворительную
- 12. R igraph: Соответствующие ребра между двумя графиками
- 13. Как получить список различий в большом проекте
- 14. PHP - Отображение различий между двумя файлами CSV
- 15. Как обеспечить список различий между 2 списками
- 16. Понимание различий между этими двумя декораторами
- 17. Regex: подсчет различий между двумя строками
- 18. Получение различий между двумя почти идентичными таблицами
- 19. Как получить список дат между двумя датами?
- 20. CV - Извлечение различий между двумя изображениями
- 21. PHP: Отображение различий между двумя строками
- 22. Удаление ребро между двумя вершинами [igraph питона]
- 23. Handling различные перестановки различий между двумя списками
- 24. T-SQL получить подсчет различий между двумя таблицами
- 25. Вычисление разницы между двумя графами «край мудрый» в сетиx
- 26. запрос для поиска различий между двумя записями
- 27. Понимание различий между двумя синтаксисами Javascript
- 28. Выделение текстовых различий между двумя строками Java
- 29. Алгоритм для оценки различий в последовательности между двумя списками
- 30. Как создать список последовательных различий git между двумя ветвями в формате svn?
Являются ли ваши вершины идентифицированными по имени или номеру индекса? Что бы классифицировать две вершины одинаковыми в разных графах? То есть, что является уникальным идентификатором для вершины в вашем графике. – gowrath