pythonplottreedata-visualizationvisualization

Tree plotting in Python


I want to plot trees using Python. Decision trees, Organizational charts, etc. Any library that helps me with that?


Solution

  • There's graphviz - http://www.graphviz.org/. It uses the "DOT" language to plot graphs. You can either generate the DOT code yourself, or use pydot - https://github.com/pydot/pydot. You could also use networkx - http://networkx.lanl.gov/tutorial/tutorial.html#drawing-graphs, which make it easy to draw to either graphviz or matplotlib.

    networkx + matplotlib + graphviz gives you the most flexibility and power, but you need to install a lot.

    If you want a quick solution, try:

    Install Graphviz.

    open('hello.dot','w').write("digraph G {Hello->World}")
    import subprocess
    subprocess.call(["path/to/dot.exe","-Tpng","hello.dot","-o","graph1.png"]) 
    # I think this is right - try it form the command line to debug
    

    Then you install pydot, because pydot already does this for you. Then you can use networkx to "drive" pydot.