union(G, H, rename=(None, None), name=None)[source]

Return the union of graphs G and H.

Graphs G and H must be disjoint after the renaming takes place, otherwise an exception is raised.


A NetworkX graph

renametuple , default=(None, None)

Node names of G and H 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”.


Specify the name for the union graph

Deprecated since version 2.7: This is deprecated and will be removed in version v3.0.

UA union graph with the same type as G.

See also



To force a disjoint union with node relabeling, use disjoint_union(G,H) or convert_node_labels_to integers().

Graph, edge, and node attributes are propagated from G and H to the union graph. If a graph attribute is present in both G and H the value from H is used.


>>> G = nx.Graph([(0, 1), (0, 2), (1, 2)])
>>> H = nx.Graph([(0, 1), (0, 3), (1, 3), (1, 2)])
>>> U = nx.union(G, H, rename=("G", "H"))
>>> U.nodes
NodeView(('G0', 'G1', 'G2', 'H0', 'H1', 'H3', 'H2'))
>>> U.edges
EdgeView([('G0', 'G1'), ('G0', 'G2'), ('G1', 'G2'), ('H0', 'H1'), ('H0', 'H3'), ('H1', 'H3'), ('H1', 'H2')])