projected_graph#
- projected_graph(B, nodes, multigraph=False)[source]#
返回B在其一个节点集上的投影。
返回图G,该图是二分图B在指定节点上的投影。它们保留其属性,并且在G中连接,如果它们在B中有一个共同的邻居。
- Parameters:
- BNetworkX图
输入图应该是二分图。
- nodes列表或可迭代对象
要投影到的节点(“底部”节点)。
- multigraph: 布尔值(默认=False)
如果为True,返回一个多重图,其中多条边表示多个共享邻居。多重图中的边键被分配给邻居的标签。
- Returns:
- GraphNetworkX图或多重图
一个图,是投影到给定节点上的图。
See also
is_bipartite
is_bipartite_node_set
sets
weighted_projected_graph
collaboration_weighted_projected_graph
overlap_weighted_projected_graph
generic_weighted_projected_graph
Notes
没有尝试验证输入图B是否为二分图。 返回一个简单图,该图是二分图B在列表节点中给定节点集上的投影。如果multigraph=True,则返回一个多重图,其中每条边对应一个共享邻居。
允许输入有向图。输出也将是一个有向图,如果节点之间存在有向路径,则会有边。
图和节点的属性被(浅层)复制到投影图中。
参见
bipartite文档
了解NetworkX中如何处理二分图的进一步细节。Examples
>>> 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)]
如果节点
a
和b
通过节点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']]