generic_graph_view#
- generic_graph_view(G, create_using=None)[source]#
返回
G
的只读视图。图
G
及其属性不会被复制,而是通过与G
相同类(或create_using
中指定的类)的新图对象进行查看。- Parameters:
- G图
一个有向/无向图/多重图。
- create_usingNetworkX 图构造函数, 可选 (默认=None)
要创建的图类型。如果是图实例,则在填充前清空。 如果为
None
,则根据G
推断适当的图类型。
- Returns:
- newG图
通过
create_using
类查看的输入图G
及其属性的视图。
- Raises:
- NetworkXError
如果
G
是多重图(或多重有向图)但create_using
不是,或者反之。
Notes
返回的图视图是只读的(不能修改图)。 然而,视图会反映
G
中的任何更改。目的是模仿字典视图。Examples
>>> G = nx.Graph() >>> G.add_edge(1, 2, weight=0.3) >>> G.add_edge(2, 3, weight=0.5) >>> G.edges(data=True) EdgeDataView([(1, 2, {'weight': 0.3}), (2, 3, {'weight': 0.5})])
视图展示了原始图的属性。
>>> viewG = nx.graphviews.generic_graph_view(G) >>> viewG.edges(data=True) EdgeDataView([(1, 2, {'weight': 0.3}), (2, 3, {'weight': 0.5})])
对
G
的更改会反映在viewG
中。>>> G.remove_edge(2, 3) >>> G.edges(data=True) EdgeDataView([(1, 2, {'weight': 0.3})])
>>> viewG.edges(data=True) EdgeDataView([(1, 2, {'weight': 0.3})])
我们可以通过
create_using
参数更改图类型。>>> type(G) <class 'networkx.classes.graph.Graph'> >>> viewDG = nx.graphviews.generic_graph_view(G, create_using=nx.DiGraph) >>> type(viewDG) <class 'networkx.classes.digraph.DiGraph'>