projected_graph#
- projected_graph(B, nodes, multigraph=False)[源代码]#
返回B在其一个节点集上的投影。
返回图G,它是二部图B在指定节点上的投影。如果它们在B中有一个公共邻居,那么它们保留它们的属性并以G连接。
- 参数
- B网络X图表
输入图应该是二部图。
- nodes列表或可迭代
要投影到的节点(“底部”节点)。
- multigraph: bool (default=False)
如果为True,则返回多重图,其中多条边表示多个共享邻居。多重图中的边关键字被分配给邻居的标签。
- 返回
- Graph网络X图或多图
是在给定节点上的投影的图。
参见
is_bipartite
is_bipartite_node_set
sets
weighted_projected_graph
collaboration_weighted_projected_graph
overlap_weighted_projected_graph
generic_weighted_projected_graph
笔记
未尝试验证输入图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)]
中频节点
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']]