Skip to main content
`Ctrl`+`K`

# closeness_centrality

closeness_centrality(G, nodes, normalized=True)

  Compute the closeness centrality for nodes in a bipartite network.

  The closeness of a node is the distance to all other nodes in the graph or in the case that the graph is not connected to all other nodes in the connected component containing that node.

  Parameters:
    G graph

      A bipartite network

    nodes list or container

      Container with all nodes in one bipartite node set.

    normalized bool, optional

      If True (default) normalize by connected component size.

  Returns:
    closeness dictionary

      Dictionary keyed by node with bipartite closeness centrality as the value.

  See also

  `betweenness_centrality`
  `degree_centrality`
  `sets()`
  `is_bipartite()`

  Notes

  The nodes input parameter must contain all nodes in one bipartite node set, but the dictionary returned contains all nodes from both node sets. See `bipartite documentation` for further details on how bipartite graphs are handled in NetworkX.

  Closeness centrality is normalized by the minimum distance possible. In the bipartite case the minimum distance for a node in one bipartite node set is 1 from all nodes in the other node set and 2 from all other nodes in its own set [1]. Thus the closeness centrality for node `v` in the two bipartite sets `U` with `n` nodes and `V` with `m` nodes is

  \[ \begin{align}\begin{aligned}c_{v} = \frac{m + 2(n - 1)}{d}, \mbox{for} v \in U,\\c_{v} = \frac{n + 2(m - 1)}{d}, \mbox{for} v \in V,\end{aligned}\end{align} \]

  where `d` is the sum of the distances from `v` to all other nodes.

  Higher values of closeness indicate higher centrality.

  As in the unipartite case, setting normalized=True causes the values to normalized further to n-1 / size(G)-1 where n is the number of nodes in the connected part of graph containing the node. If the graph is not completely connected, this algorithm computes the closeness centrality for each connected part separately.

  References

  [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. https://dx.doi.org/10.4135/9781446294413.n28

  Examples

      >>> G = nx.wheel_graph(5)
      >>> top_nodes = {0, 1, 2}
      >>> nx.bipartite.closeness_centrality(G, nodes=top_nodes)
      {0: 1.5, 1: 1.2, 2: 1.2, 3: 1.0, 4: 1.0}