networkx 2.8.2 Pypi GitHub Homepage
Other Docs
NotesParametersReturnsBackRef
directed_modularity_matrix(G, nodelist=None, weight=None)

The modularity matrix is the matrix B = A - <A>, where A is the adjacency matrix and <A> is the expected adjacency matrix, assuming that the graph is described by the configuration model.

More specifically, the element B_ij of B is defined as

$$B_{ij} = A_{ij} - k_i^{out} k_j^{in} / m$$

where $k_i^{in}$ is the in degree of node i, and $k_j^{out}$ is the out degree of node j, with m the number of edges in the graph. When weight is set to a name of an attribute edge, Aij, k_i, k_j and m are computed using its value.

Notes

NetworkX defines the element A_ij of the adjacency matrix as 1 if there is a link going from node i to node j. Leicht and Newman use the opposite definition. This explains the different expression for B_ij.

Parameters

G : DiGraph

A NetworkX DiGraph

nodelist : list, optional

The rows and columns are ordered according to the nodes in nodelist. If nodelist is None, then the ordering is produced by G.nodes().

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

The edge attribute that holds the numerical value used for the edge weight. If None then all edge weights are 1.

Returns

B : Numpy matrix

The modularity matrix of G.

Returns the directed modularity matrix of G.

See Also

adjacency_matrix
modularity_matrix
modularity_spectrum
to_numpy_array

Examples

>>> G = nx.DiGraph()
... G.add_edges_from(
...  (
...  (1, 2),
...  (1, 3),
...  (3, 1),
...  (3, 2),
...  (3, 5),
...  (4, 5),
...  (4, 6),
...  (5, 4),
...  (5, 6),
...  (6, 4),
...  )
... )
... B = nx.directed_modularity_matrix(G)
See :

Back References

The following pages refer to to this document either explicitly or contain code examples using this.

networkx.linalg.modularitymatrix.modularity_matrix networkx.linalg.modularitymatrix.directed_modularity_matrix

Local connectivity graph

Hover to see nodes names; edges to Self not shown, Caped at 50 nodes.

Using a canvas is more power efficient and can get hundred of nodes ; but does not allow hyperlinks; , arrows or text (beyond on hover)

SVG is more flexible but power hungry; and does not scale well to 50 + nodes.

All aboves nodes referred to, (or are referred from) current nodes; Edges from Self to other have been omitted (or all nodes would be connected to the central node "self" which is not useful). Nodes are colored by the library they belong to, and scaled with the number of references pointing them


GitHub : /networkx/linalg/modularitymatrix.py#85
type: <class 'function'>
Commit: