本文简要介绍
networkx.MultiDiGraph.subgraph
的用法。用法:
MultiDiGraph.subgraph(nodes)
返回在
nodes
上诱导的子图的 SubGraph 视图。图的诱导子图包含
nodes
中的节点以及这些节点之间的边。- nodes:列表,可迭代
将迭代一次的节点容器。
- G:SubGraph 查看
图的子图视图。图结构不能更改,但节点/边属性可以并且与原始图共享。
参数:
返回:
注意:
图、边和节点属性与原始图共享。视图排除了对图形结构的更改,但对属性的更改会反映在原始图形中。
要创建具有自己的边/节点属性副本的子图,请使用:G.subgraph(nodes).copy()
要将图就地简化为子图,您可以删除节点: G.remove_nodes_from([n for n in G if n not in set(nodes)])
子图视图有时不是您想要的。在大多数情况下,如果您想做的不仅仅是查看诱导边,使用以下代码将子图创建为自己的图更有意义:
# Create a subgraph SG based on a (possibly multigraph) G SG = G.__class__() SG.add_nodes_from((n, G.nodes[n]) for n in largest_wcc) if SG.is_multigraph(): SG.add_edges_from((n, nbr, key, d) for n, nbrs in G.adj.items() if n in largest_wcc for nbr, keydict in nbrs.items() if nbr in largest_wcc for key, d in keydict.items()) else: SG.add_edges_from((n, nbr, d) for n, nbrs in G.adj.items() if n in largest_wcc for nbr, d in nbrs.items() if nbr in largest_wcc) SG.graph.update(G.graph)
例子:
>>> G = nx.path_graph(4) # or DiGraph, MultiGraph, MultiDiGraph, etc >>> H = G.subgraph([0, 1, 2]) >>> list(H.edges) [(0, 1), (1, 2)]
相关用法
- Python NetworkX MultiDiGraph.size用法及代码示例
- Python NetworkX MultiDiGraph.number_of_nodes用法及代码示例
- Python NetworkX MultiDiGraph.in_degree用法及代码示例
- Python NetworkX MultiDiGraph.add_edge用法及代码示例
- Python NetworkX MultiDiGraph.degree用法及代码示例
- Python NetworkX MultiDiGraph.__init__用法及代码示例
- Python NetworkX MultiDiGraph.edges用法及代码示例
- Python NetworkX MultiDiGraph.update用法及代码示例
- Python NetworkX MultiDiGraph.clear用法及代码示例
- Python NetworkX MultiDiGraph.out_degree用法及代码示例
- Python NetworkX MultiDiGraph.to_directed用法及代码示例
- Python NetworkX MultiDiGraph.remove_nodes_from用法及代码示例
- Python NetworkX MultiDiGraph.add_nodes_from用法及代码示例
- Python NetworkX MultiDiGraph.__len__用法及代码示例
- Python NetworkX MultiDiGraph.remove_node用法及代码示例
- Python NetworkX MultiDiGraph.remove_edges_from用法及代码示例
- Python NetworkX MultiDiGraph.nodes用法及代码示例
- Python NetworkX MultiDiGraph.edge_subgraph用法及代码示例
- Python NetworkX MultiDiGraph.__iter__用法及代码示例
- Python NetworkX MultiDiGraph.to_undirected用法及代码示例
- Python NetworkX MultiDiGraph.get_edge_data用法及代码示例
- Python NetworkX MultiDiGraph.has_edge用法及代码示例
- Python NetworkX MultiDiGraph.number_of_edges用法及代码示例
- Python NetworkX MultiDiGraph.add_node用法及代码示例
- Python NetworkX MultiDiGraph.order用法及代码示例
注:本文由纯净天空筛选整理自networkx.org大神的英文原创作品 networkx.MultiDiGraph.subgraph。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。