Skip to main content
`Ctrl`+`K`

# union_all

union_all(graphs, rename=())

  Returns the union of all graphs.

  The graphs must be disjoint, otherwise an exception is raised.

  Parameters:
    graphs iterable

      Iterable of NetworkX graphs

    rename iterable , 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:
    U a 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

  `union`
  `disjoint_union_all`

  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)])