line_graph#

line_graph(G, create_using=None)[源代码]#

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

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

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

有关自循环和更多讨论的信息,请参见 笔记 下面部分。

参数
G图表

网络X图、有向图、多重图或多重有向图。

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

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

返回
L图表

该图是G.

笔记

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

Self-loops in undirected graphs

对于无向图 G 如果没有多个边,每个边都可以写成一组 {{u, v}} . 直线图 L 有…的边缘 G 作为其节点。如果 xy 有两个节点在 L 然后 {{x, y}} 是一个边缘 L 如果且仅当 xy 是非空的。因此,所有边的集合由边在 G .

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

自循环和多条边 G 添加节点到 L 以一种自然的方式,并且不需要对定义进行任何基本的更改。可能有人认为,我们以前排除的自循环现在应该包括在内。然而,自循环在某种意义上仍然是“微不足道的”,因此,通常被排除在外。

Self-loops in directed graphs

对于有向图 G 如果没有多个边,每个边都可以写成一个元组。 (u, v) . 直线图 L 有…的边缘 G 作为其节点。如果 xy 有两个节点在 L 然后 (x, y) 是一个边缘 L 如果且仅当 x 与…相匹配 y ,例如,如果 x = (a, b)y = (b, c) 对于某些顶点 abc 在里面 G .

由于边缘的定向性,不再是每个边缘 G 应该有一个自我循环 L . 现在,出现自循环的唯一时间是 G 它本身有一个自循环。这样的自循环不再是“琐碎的”,而是代表了 G . 因此,线有向图的历史发展是包含了自循环的。当图 G 有多个边,再次定义只需要表面的改变。

工具书类

  • Harary,Frank和Norman,Robert Z.,“线有向图的一些特性”,Rend.中国保监会垫子。巴勒莫,II.Ser。9(1960),161-168。

  • Hemminger,R.L.;Beineke,L.W.(1978),“线图和线有向图”,in Beineke,L.W.;Wilson,R.J.,图论选题,学术出版社,第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)]]