This documents the development version of NetworkX. Documentation for the current release can be found here.


barycenter(G, weight=None, attr=None, sp=None)[source]

Calculate barycenter of a connected graph, optionally with edge weights.

The barycenter a connected graph \(G\) is the subgraph induced by the set of its nodes \(v\) minimizing the objective function

\[\sum_{u \in V(G)} d_G(u, v),\]

where \(d_G\) is the (possibly weighted) path length. The barycenter is also called the median. See [West01], p. 78.

  • G (networkx.Graph) – The connected graph \(G\).

  • weight (str, optional) – Passed through to shortest_path_length().

  • attr (str, optional) – If given, write the value of the objective function to each node’s attr attribute. Otherwise do not store the value.

  • sp (dict of dicts, optional) – All pairs shortest path lengths as a dictionary of dictionaries


Nodes of G that induce the barycenter of G.

Return type


  • NetworkXNoPath – If G is disconnected. G may appear disconnected to barycenter() if sp is given but is missing shortest path lengths for any pairs.

  • ValueError – If sp and weight are both given.

See also

center(), periphery()