projected_graph#

projected_graph(B, nodes, multigraph=False)[源代码]#

返回B在其一个节点集上的投影。

返回图G,它是二部图B在指定节点上的投影。如果它们在B中有一个公共邻居,那么它们保留它们的属性并以G连接。

参数
B网络X图表

输入图应该是二部图。

nodes列表或可迭代

要投影到的节点(“底部”节点)。

multigraph: bool (default=False)

如果为True,则返回多重图,其中多条边表示多个共享邻居。多重图中的边关键字被分配给邻居的标签。

返回
Graph网络X图或多图

是在给定节点上的投影的图。

笔记

未尝试验证输入图B是否为二部分。返回一个简单图,该图是二部图B在列表节点中给定的节点集上的投影。如果multigraph=true,则返回一个多图,每个共享邻居都有一个边。

允许有向图作为输入。如果节点之间有一个有向路径,那么输出也将是一个带边的有向图。

图形和节点属性(浅)复制到投影图形。

bipartite documentation 有关如何在NetworkX中处理二部图的详细信息。

实例

>>> from networkx.algorithms import bipartite
>>> B = nx.path_graph(4)
>>> G = bipartite.projected_graph(B, [1, 3])
>>> list(G)
[1, 3]
>>> list(G.edges())
[(1, 3)]

中频节点 ab 通过两个节点1和2连接,然后构建多图表,结果在投影图的两个边上 [a, b] :

>>> B = nx.Graph()
>>> B.add_edges_from([("a", 1), ("b", 1), ("a", 2), ("b", 2)])
>>> G = bipartite.projected_graph(B, ["a", "b"], multigraph=True)
>>> print([sorted((u, v)) for u, v in G.edges()])
[['a', 'b'], ['a', 'b']]