Search code examples
pythongraphipythonnetworkx

How to represent graphs with IPython


Recently I discovered IPython notebook which is a powerful tool. As an IT student, I was looking for a way to represent graphs in Python. For example, I would like to know if there's a library (like numpy or matplotlib ?) which can draw from this

{ "1" : ["3", "2"],
  "2" : ["4"],
  "3" : ["6"],
  "4" : ["6"],
  "5" : ["7", "8"],
  "6" : [],
  "7" : [],
  "8" : []
}

something like this :

(source : developpez.com)

Is there something like this ?


Solution

  • You can use networkx and, if you need to render the graph in ipython notebook, nxpd

    import networkx as nx
    from nxpd import draw
    G = nx.DiGraph()
    G.graph['dpi'] = 120
    G.add_nodes_from(range(1,9))
    G.add_edges_from([(1,2),(1,3),(2,4),(3,6),(4,5),(4,6),(5,7),(5,8)])
    draw(G, show='ipynb')
    

    enter image description here