Note

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

networkx.algorithms.assortativity.degree_assortativity_coefficient

degree_assortativity_coefficient(G, x='out', y='in', weight=None, nodes=None)[source]

Compute degree assortativity of graph.

Assortativity measures the similarity of connections in the graph with respect to the node degree.

Parameters
GNetworkX graph
x: string (‘in’,’out’)

The degree type for source node (directed graphs only).

y: string (‘in’,’out’)

The degree type for target node (directed graphs only).

weight: string or None, optional (default=None)

The edge attribute that holds the numerical value used as a weight. If None, then each edge has weight 1. The degree is the sum of the edge weights adjacent to the node.

nodes: list or iterable (optional)

Compute degree assortativity only for nodes in container. The default is all nodes.

Returns
rfloat

Assortativity of graph by degree.

Notes

This computes Eq. (21) in Ref. [1] , where e is the joint probability distribution (mixing matrix) of the degrees. If G is directed than the matrix e is the joint probability of the user-specified degree type for the source and target.

References

1

M. E. J. Newman, Mixing patterns in networks, Physical Review E, 67 026126, 2003

2

Foster, J.G., Foster, D.V., Grassberger, P. & Paczuski, M. Edge direction and the structure of networks, PNAS 107, 10815-20 (2010).

Examples

>>> G = nx.path_graph(4)
>>> r = nx.degree_assortativity_coefficient(G)
>>> print(f"{r:3.1f}")
-0.5