Skip to main content
`Ctrl`+`K`

# make_max_clique_graph

make_max_clique_graph(G, create_using=None)

  Returns the maximal clique graph of the given graph.

  The nodes of the maximal clique graph of `G` are the cliques of `G` and an edge joins two cliques if the cliques are not disjoint.

  Parameters:
    G NetworkX graph
    create_using NetworkX graph constructor, optional (default=nx.Graph)

      Graph type to create. If graph instance, then cleared before populated.

  Returns:
    NetworkX graph

      A graph whose nodes are the cliques of `G` and whose edges join two cliques if they are not disjoint.

  Notes

  This function behaves like the following code:

      import networkx as nx

      G = nx.make_clique_bipartite(G)
      cliques = [v for v in G.nodes() if G.nodes[v]["bipartite"] == 0]
      G = nx.bipartite.projected_graph(G, cliques)
      G = nx.relabel_nodes(G, {-v: v - 1 for v in G})

  It should be faster, though, since it skips all the intermediate steps.