图形类型#

NetworkX提供用于存储图形的数据结构和方法。

所有networkx图形类都允许(hashable)python对象作为节点,任何python对象都可以指定为边属性。

图形类的选择取决于要表示的图形的结构。

我应该使用哪个图形类?#

NetworkX类

类型

允许自循环

允许平行边

无向的

是的

DiGraph

定向的

是的

MultiGraph

无向的

是的

是的

MultiDiGraph

定向的

是的

是的

基本图形类型#

备注

NETWorkX使用 dicts 在图形中存储节点和邻居。因此,基础图类的节点和边缘的报告在不同版本和平台之间不一定是一致的。如果需要节点和边缘的顺序保持一致(例如,编写自动测试时),请参见 OrderedGraphOrderedDiGraphOrderedMultiGraphOrderedMultiDiGraph ,其行为类似于基础图类,但为节点和边的报告提供一致的顺序。

图形视图#

图的视图,如子图、反转图、有向图、无向图。

在某些算法中,可以方便地临时变形图形以排除某些节点或边。通过视图执行此操作应该比删除然后重新添加要好。在其他算法中,可以方便地临时变形一个图来反转有向边,或者将有向图视为无向图等,本模块提供了这些图视图。

结果视图本质上是只读图形,报告来自原始图形对象的数据。我们提供了一个指向底层图形对象的属性g.u图。

注意:因为graphview看起来像图形,所以可以以视图链的视图结束。小心使用链,因为它们在使用大约15个嵌套视图时速度非常慢。对于从图类创建的节点诱导子图的常见简单情况,我们通过直接返回原始图的子图而不是子图的子图来缩短链。我们小心不要破坏中间子图中的任何边滤波器。一般来说,确定如何缩短链是一个棘手的问题,而且受限视图比诱导子图更难。通常最容易使用.copy()来避免链。

generic_graph_view(G[, create_using])

subgraph_view(G[, filter_node, filter_edge])

G 对节点和边应用筛选器。

reverse_view(G)

G 边缘方向相反

核心视图#

核心数据结构的视图,如嵌套映射(例如词典)。这些 Views 通常限制元素访问,嵌套映射的整个视图或层都是只读的。

AtlasView(d)

AtlasView是映射的只读映射。

AdjacencyView(d)

邻接视图是地图的地图的只读地图。

MultiAdjacencyView(d)

多邻接视图是地图的只读地图地图的地图。

UnionAtlas(succ, pred)

两个地图集的只读联合(词典)。

UnionAdjacency(succ, pred)

作为映射的DICT邻接的只读并集。

UnionMultiInner(succ, pred)

多邻接的两个内部指令的只读并集。

UnionMultiAdjacency(succ, pred)

两个DICT多相邻项的只读联合。

FilterAtlas(d, NODE_OK)

FilterAdjacency(d, NODE_OK, EDGE_OK)

FilterMultiInner(d, NODE_OK, EDGE_OK)

FilterMultiAdjacency(d, NODE_OK, EDGE_OK)

过滤器#

备注

过滤器可与视图一起使用,以限制视图(或展开视图)。它们可以过滤节点或过滤边。这些示例旨在帮助您构建新的示例。它们可能包含您所需的所有过滤器。

过滤工厂以隐藏或显示节点和边集。

这些过滤器返回创建时使用的函数 SubGraph .

no_filter(*items)

hide_nodes(nodes)

hide_edges(edges)

hide_diedges(edges)

hide_multidiedges(edges)

hide_multiedges(edges)

show_nodes(nodes)

show_edges(edges)

show_diedges(edges)

show_multidiedges(edges)

show_multiedges(edges)