7.3.4.2. networkx.algorithms.bipartite.projection.weighted_projected_graph¶
-
networkx.algorithms.bipartite.projection.weighted_projected_graph(B, nodes, ratio=False)[source]¶ Returns a weighted projection of B onto one of its node sets.
The weighted projected graph is the projection of the bipartite network B onto the specified nodes with weights representing the number of shared neighbors or the ratio between actual shared neighbors and possible shared neighbors if ratio=True [R504]. The nodes retain their attributes and are connected in the resulting graph if they have an edge to a common node in the original graph.
Parameters: B : NetworkX graph
The input graph should be bipartite.
nodes : list or iterable
Nodes to project onto (the “bottom” nodes).
ratio: Bool (default=False)
If True, edge weight is the ratio between actual shared neighbors and possible shared neighbors. If False, edges weight is the number of shared neighbors.
Returns: Graph : NetworkX graph
A graph that is the projection onto the given nodes.
See also
is_bipartite,is_bipartite_node_set,sets,collaboration_weighted_projected_graph,overlap_weighted_projected_graph,generic_weighted_projected_graph,projected_graphNotes
No attempt is made to verify that the input graph B is bipartite. The graph and node properties are (shallow) copied to the projected graph.
References
[R504] (1, 2) 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. 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})]