triadic_census#
- triadic_census(G, nodelist=None)[source]#
Determines the triadic census of a directed graph.
The triadic census is a count of how many of the 16 possible types of triads are present in a directed graph. If a list of nodes is passed, then only those triads are taken into account which have elements of nodelist in them.
- Parameters:
- Gdigraph
A NetworkX DiGraph
- nodelistlist
List of nodes for which you want to calculate triadic census
- Returns:
- censusdict
Dictionary with triad type as keys and number of occurrences as values.
- Raises:
- ValueError
If
nodelist
contains duplicate nodes or nodes not inG
. If you want to ignore this you can preprocess withset(nodelist) & G.nodes
See also
triad_graph
Notes
This algorithm has complexity \(O(m)\) where \(m\) is the number of edges in the graph.
References
[1]Vladimir Batagelj and Andrej Mrvar, A subquadratic triad census algorithm for large sparse networks with small maximum degree, University of Ljubljana, http://vlado.fmf.uni-lj.si/pub/networks/doc/triads/triads.pdf
Examples
>>> G = nx.DiGraph([(1, 2), (2, 3), (3, 1), (3, 4), (4, 1), (4, 2)]) >>> triadic_census = nx.triadic_census(G) >>> for key, value in triadic_census.items(): ... print(f"{key}: {value}") ... 003: 0 012: 0 102: 0 021D: 0 021U: 0 021C: 0 111D: 0 111U: 0 030T: 2 030C: 2 201: 0 120D: 0 120U: 0 120C: 0 210: 0 300: 0