Изолировать связанные_компоненты - PullRequest
0 голосов
/ 04 мая 2018

У меня есть следующий отрывок графика сети:

enter image description here

Следующие функции были выполнены для изучения структуры подключенных компонентов, поскольку у меня есть разреженная сеть с множеством единичных соединений:

nx.number_connected_components(G) 
>>> 702

list(nx.connected_components(G))
>>> [{120930, 172034},
 {118787, 173867, 176202},
 {50376, 151561}, 
...]

Вопрос: Как я могу ограничить всю визуализацию своего графа подключенными компонентами с равными или более чем тремя узлами?

Ответы [ 2 ]

0 голосов
/ 05 мая 2018
graphs = list(nx.connected_component_subgraphs(G))
list_subgraphs=[items for i in graphs for items in i if len(i)>=3]
F=G.subgraph(list_subgraphs)

Создание плоского списка подграфов с компонентами, превышающими 3 узла, скажем!

0 голосов
/ 05 мая 2018

Мы можем создать подграф, содержащий компоненты с равным или более трех узлов:

s = G.subgraph(
    set.union(
        *filter(lambda x: len(x) >= 3, nx.connected_components(G))
    )
)

Теперь вам просто нужно визуализировать этот подграф s.

Нам может потребоваться сделать копию вместо SubGraph представления, в этом случае s = s.copy() сделает копию из подграфа.

...