triads_by_type#

triads_by_type(G)[source]#

返回有向图中每种三元组类型的所有三元组列表。 共有16种不同的三元组类型。假设1、2、3是三个节点,如果它们的连接方式如下,则它们将被归类为特定的三元组类型:

  • 003: 1, 2, 3

  • 012: 1 -> 2, 3

  • 102: 1 <-> 2, 3

  • 021D: 1 <- 2 -> 3

  • 021U: 1 -> 2 <- 3

  • 021C: 1 -> 2 -> 3

  • 111D: 1 <-> 2 <- 3

  • 111U: 1 <-> 2 -> 3

  • 030T: 1 -> 2 -> 3, 1 -> 3

  • 030C: 1 <- 2 <- 3, 1 -> 3

  • 201: 1 <-> 2 <-> 3

  • 120D: 1 <- 2 -> 3, 1 <-> 3

  • 120U: 1 -> 2 <- 3, 1 <-> 3

  • 120C: 1 -> 2 -> 3, 1 <-> 3

  • 210: 1 -> 2 <-> 3, 1 <-> 3

  • 300: 1 <-> 2 <-> 3, 1 <-> 3

有关三元组类型的可视化示例,请参阅 示例图库

Parameters:
G有向图

一个NetworkX有向图

Returns:
tri_by_type字典

以三元组类型为键,以三元组列表为值的字典。

References

[1]

Snijders, T. (2012). “Transitivity and triads.” University of Oxford. https://web.archive.org/web/20170830032057/http://www.stats.ox.ac.uk/~snijders/Trans_Triads_ha.pdf

Examples

>>> G = nx.DiGraph([(1, 2), (1, 3), (2, 3), (3, 1), (5, 6), (5, 4), (6, 7)])
>>> dict = nx.triads_by_type(G)
>>> dict["120C"][0].edges()
OutEdgeView([(1, 2), (1, 3), (2, 3), (3, 1)])
>>> dict["012"][0].edges()
OutEdgeView([(1, 2)])