DrawGViz (SWIG)
'''''''''''''''

.. function:: DrawGViz(Graph, Layout, PltFNm, Desc=TStr(), NodeLabels=False, NIdColorH=TIntStrH())
   :noindex:

Draws the given *Graph* using a selected GraphViz Layout engine with nodes colored. Useful for drawing small (<100 node) graphs. Creates a file with name *PltFNm*.

Parameters:

- *Graph*: graph (input)
    A Snap.py graph or a network

- *Layout*: TGVizLayout (input)
    One of gvlDot, gvlNeato, gvlTwopi, gvlCirco, gvlSfdp. The type of layout for the graph.

- *PltFNm*: string (input)
    Output filename (extension .ps, .png, .gif) determines the output format.

- *Desc*: string (input)
    A string describing the visualization.

- *NodeLabels*: bool (input)
    Whether or not the nodes in image have labels associated with them.
    
- *NIdColorH*: :class:`TIntStrH`, a hash table with int keys and string values (input)
    Maps node ids to node colors (see GraphViz documentation for more details).

Return value:

- None


Note that larger graphs (more than a few hundred nodes) may take several minutes to finish generating the image. The following example shows how to make a pretty graph image for nodes in
:class:`TNGraph`, :class:`TUNGraph`, and :class:`TNEANet`::
    
    import snap

    Graph = snap.GenRndGnm(snap.PNGraph, 10, 20)
    snap.DrawGViz(Graph, snap.gvlDot, "graph.png", "graph 1")

    UGraph = snap.GenRndGnm(snap.PUNGraph, 10, 40)
    snap.DrawGViz(UGraph, snap.gvlNeato, "graph_undirected.png", "graph 2", True)

    NIdColorH = snap.TIntStrH()
    NIdColorH[0] = "green"
    NIdColorH[1] = "red"
    NIdColorH[2] = "purple"
    NIdColorH[3] = "blue"
    NIdColorH[4] = "yellow"
    Network = snap.GenRndGnm(snap.PNEANet, 5, 10)
    snap.DrawGViz(Network, snap.gvlSfdp, "network.png", "graph 3", True, NIdColorH)