weighted_projected_graph#
- weighted_projected_graph(B, nodes, ratio=False)[source]#
返回图 B 在其节点集之一上的加权投影。
加权投影图是将二部网络 B 投影到指定节点集上得到的图,其边权重表示共享邻居的数量,或者当
ratio is True
时,表示实际共享邻居与可能的共享邻居之间的比率 [1]。节点保留其属性,并且如果它们在原图中与某个共同节点有边相连,则在结果图中它们之间也存在边。- 参数:
- BNetworkX 图
输入图应为二部图。
- nodes列表或可迭代对象
要投影到的不同节点(“底部”节点)。
- ratio: 布尔型 (默认为 False)
如果为 True,边权重是实际共享邻居与最大可能共享邻居(即,另一节点集的大小)之间的比率。如果为 False,边权重是共享邻居的数量。
- 返回:
- GraphNetworkX 图
一个表示投影到给定节点上的图。
另见
is_bipartite
is_bipartite_node_set
sets
collaboration_weighted_projected_graph
overlap_weighted_projected_graph
generic_weighted_projected_graph
projected_graph
说明
未尝试验证输入图 B 是否为二部图,或输入节点是否唯一。但是,如果输入节点的数量大于或等于图 B 中的节点总数,则会引发异常。如果节点不唯一但未引发此错误,则输出权重将不正确。图和节点属性会被(浅)复制到投影图中。
有关 NetworkX 中如何处理二部图的更多详细信息,请参见
二部图文档
。参考文献
[1]Borgatti, S.P. and Halgin, D. In press. “Analyzing Affiliation Networks”. In Carrington, P. and Scott, J. (eds) The Sage Handbook of Social Network Analysis. Sage Publications.
示例
>>> 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})]