当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python NetworkX line_graph用法及代码示例


本文简要介绍 networkx.generators.line.line_graph 的用法。

用法:

line_graph(G, create_using=None)

返回图形或有向图 G 的折线图。

G 的折线图对于G 中的每条边都有一个节点,如果G 中的两条边共享一个公共节点,则有一条边连接这些节点。对于有向图,当节点表示的边形成长度为 2 的有向路径时,节点恰好相邻。

折线图的节点是原始图中节点的 2 元组(或多重图的 3 元组,边的键作为第三个元素)。

有关自循环和更多讨论的信息,请参阅下面的注释部分。

参数

G图形

NetworkX 图、有向图、多重图或多向图。

create_usingNetworkX 图形构造函数,可选(默认=nx.Graph)

要创建的图表类型。如果是图形实例,则在填充之前清除。

返回

L图形

G的折线图。

注意

图、节点和边数据不会传播到新图。对于无向图,G 中的节点必须是可排序的,否则构造的折线图可能不正确。

Self-loops in undirected graphs

对于没有多条边的无向图G,每条边都可以写成一个集合{u, v}。它的折线图LG 的边作为节点。如果xyL中的两个节点,那么{x, y}L中的边当且仅当xy的交集是非空的。因此,所有边的集合由G 中所有成对的边的集合确定。

简单地说,G 中的每条边都与自身有一个非零交点,因此L 中的每个节点都应该有一个自环。这不是很有趣,线图的原始上下文是简单的图,没有自环或多重边。折线图也应该是一个简单的图,因此L 中的自环不是折线图标准定义的一部分。在成对交集矩阵中,这类似于从折线图定义中排除对角线条目。

G 中的自循环和多重边以自然的方式将节点添加到L,并且不需要对定义进行任何根本性的更改。有人可能会争辩说,我们之前排除的自环现在应该包括在内。然而,在某种意义上,自环仍然是“trivial”,因此通常被排除在外。

Self-loops in directed graphs

对于没有多条边的有向图G,每条边都可以写成一个元组(u, v)。它的折线图LG 的边作为节点。如果 xyL 中的两个节点,那么 (x, y)L 中的边当且仅当 x 的尾部与 y 的头部匹配,例如,如果 x = (a, b)y = (b, c) 用于某些顶点 abG 中的 c

由于边的定向性质,不再是 G 中的每个边都应该在 L 中具有自循环的情况。现在,自循环出现的唯一时间是G 中的节点本身是否具有自循环。所以这样的自环不再是“trivial”,而是代表G拓扑的基本特征。出于这个原因,线图的历史发展是这样的,包括自环。当图G 有多个边时,再次只需要对定义进行表面更改。

参考

  • Harary, Frank 和 Norman, Robert Z.,“线有向图的一些属性”,Rend。圆形。填充。巴勒莫,II。爵士。 9 (1960), 161-168。
  • 海明格,R. L.; Beineke, L. W. (1978), “Line graphs and line digraphs”, 在 Beineke, L. W.; Wilson, R. J.,图论选题,Academic Press Inc.,第 271-305 页。

例子

>>> G = nx.star_graph(3)
>>> L = nx.line_graph(G)
>>> print(sorted(map(sorted, L.edges())))  # makes a 3-clique, K3
[[(0, 1), (0, 2)], [(0, 1), (0, 3)], [(0, 2), (0, 3)]]

相关用法


注:本文由纯净天空筛选整理自networkx.org大神的英文原创作品 networkx.generators.line.line_graph。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。