weighted_projected_graph#
- weighted_projected_graph(B, nodes, ratio=False)[source]#
返回B的一个节点集上的加权投影。
加权投影图是将二分网络B投影到指定节点上,权重表示共享邻居的数量或如果
ratio为True
,则表示实际共享邻居与可能共享邻居的比率[1]。节点保留其属性,并且在生成的图中如果它们在原始图中有一条共同的边,则它们相连。- Parameters:
- BNetworkX图
输入图应该是二分图。
- nodes列表或可迭代对象
要投影到的不同节点(“底部”节点)。
- ratio: 布尔值(默认=False)
如果为True,边权重是实际共享邻居与最大可能共享邻居的比率(即,另一个节点集的大小)。如果为False,边权重是共享邻居的数量。
- Returns:
- GraphNetworkX图
一个图,是投影到给定节点上的图。
See also
is_bipartite
is_bipartite_node_set
sets
collaboration_weighted_projected_graph
overlap_weighted_projected_graph
generic_weighted_projected_graph
projected_graph
Notes
没有尝试验证输入图B是否为二分图,或输入节点是否不同。然而,如果输入节点的长度大于或等于图B中的节点,则会引发异常。如果节点不是不同的但未引发此错误,输出权重将不正确。 图和节点属性被(浅层)复制到投影图中。
参见
二分图文档
了解NetworkX中如何处理二分图的更多细节。References
[1]Borgatti, S.P. 和 Halgin, D. 在版。”Analyzing Affiliation Networks”。在Carrington, P. 和 Scott, J. (eds) The Sage Handbook of Social Network Analysis. Sage Publications.
Examples
>>> from networkx.algorithms import bipartite >>> B = nx.path_graph(4) >>> G = bipartite.weighted_projected_graph(B, [1, 3]) >>> list(G) [1, 3] >>> list(G.edges(data=True)) [(1, 3, {'weight': 1})] >>> G = bipartite.weighted_projected_graph(B, [1, 3], ratio=True) >>> list(G.edges(data=True)) [(1, 3, {'weight': 0.5})]