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
作为其节点。如果x
和y
有两个节点在L
然后{{x, y}}
是一个边缘L
如果且仅当x
和y
是非空的。因此,所有边的集合由边在G
.一般来说,G中的每一条边都与自身有非零交集,因此G中的每一个节点
L
应该有一个自循环。这并不有趣,线图的原始上下文是简单的图,它没有自循环或多个边。线图也是一个简单的图,因此,在L
不是折线图的标准定义的一部分。在成对交叉矩阵中,这类似于从线图定义中排除对角线条目。自循环和多条边
G
添加节点到L
以一种自然的方式,并且不需要对定义进行任何基本的更改。可能有人认为,我们以前排除的自循环现在应该包括在内。然而,自循环在某种意义上仍然是“微不足道的”,因此,通常被排除在外。Self-loops in directed graphs
对于有向图
G
如果没有多个边,每个边都可以写成一个元组。(u, v)
. 直线图L
有…的边缘G
作为其节点。如果x
和y
有两个节点在L
然后(x, y)
是一个边缘L
如果且仅当x
与…相匹配y
,例如,如果x = (a, b)
和y = (b, c)
对于某些顶点a
,b
和c
在里面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)]]