NetworkX创建属于4node cliqu一部分的所有节点的新图形

2024-05-10 11:34:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个网络,我想被集团捆绑,但我还没有完全弄清楚如何正确地这样做。我可以用k-核来做同样的过程,但不确定创建一个只有团的图的正确过程。在

我希望如果我展示使用k_core函数查找子图的过程,有人可以帮助我改变使用clique函数查找子图的过程。在

首先,我创建一个图表,我将使用空手道俱乐部1:

In [1]: import networkx as nx

In [2]: g = nx.karate_club_graph()

在iPython中绘制到图形:

^{pr2}$

karate_club_graph

接下来,我找到4核内的所有边(有4个或更多个边):

In [5]: g_4k_edges = nx.k_core(g, k=4).edges()

将这些边添加到新图形:

In [6]: g_4k = nx.Graph()
In [7]: g_4k.add_edges_from(g_4k_edges)

绘制4核图:

In [8]: nx.draw(g_4k)

karate club graph - 4-core

有什么办法吗,但是不要用k核来绑定网络,而是使用有4个或更多顶点的团?在


Tags: 函数incoreimport网络图形过程图表
1条回答
网友
1楼 · 发布于 2024-05-10 11:34:32

这里有一种方法来生成你的子图使用集团。在

import networkx as nx

g = nx.karate_club_graph()

查找4个或更多节点的所有群:

^{pr2}$

从所有足够大的集团中创建g的子图:

nodes = set(n for clq in cliques4 for n in clq)
h = g.subgraph(nodes)

删除阶数小于4的h的节点:

deg = nx.degree(h)
nodes = [n for n in nodes if deg[n] >= 4]

所需的图k是{}的子图,其中包含以下节点:

k = h.subgraph(nodes)

以下是所需图形的图像:

nx.draw(k)

Graph image

相关问题 更多 >