union_all#
- union_all(graphs, rename=())[source]#
Returns the union of all graphs.
The graphs must be disjoint, otherwise an exception is raised.
- Parameters:
- graphsiterable
Iterable of NetworkX graphs
- renameiterable , optional
Node names of graphs can be changed by specifying the tuple rename=(‘G-‘,’H-’) (for example). Node “u” in G is then renamed “G-u” and “v” in H is renamed “H-v”. Infinite generators (like itertools.count) are also supported.
- Returns:
- Ua graph with the same type as the first graph in list
- Raises:
- ValueError
If graphs is an empty list.
- NetworkXError
In case of mixed type graphs, like MultiGraph and Graph, or directed and undirected graphs.
See also
Notes
For operating on mixed type graphs, they should be converted to the same type. >>> G = nx.Graph() >>> H = nx.DiGraph() >>> GH = union_all([nx.DiGraph(G), H])
To force a disjoint union with node relabeling, use disjoint_union_all(G,H) or convert_node_labels_to integers().
Graph, edge, and node attributes are propagated to the union graph. If a graph attribute is present in multiple graphs, then the value from the last graph in the list with that attribute is used.
Examples
>>> G1 = nx.Graph([(1, 2), (2, 3)]) >>> G2 = nx.Graph([(4, 5), (5, 6)]) >>> result_graph = nx.union_all([G1, G2]) >>> result_graph.nodes() NodeView((1, 2, 3, 4, 5, 6)) >>> result_graph.edges() EdgeView([(1, 2), (2, 3), (4, 5), (5, 6)])