Tuesday, August 12, 2008

Graph Visualization

I'm going through my semi-annual review of visualization tools in preparation for my course in Social Network Visualization and have high hopes for ubigraph, networkx, graphviz, and pygraphviz.

NetworkX has bindings for both ubigraph and graphviz (via pygraphviz which I have not successfully installed). But I can confirm that it drives ubigraph quite elegantly.

This just works:

NetworkX is a Python package for working with complex networks. Aric Hagberg, one of its authors, has put together an interface between NetworkX and UbiGraph.

NetworkX + UbiGraph from Todd Veldhuizen on Vimeo.

The interface is now included in NetworkX. To see the UbiGraph demos, do this:

$ svn co https://networkx.lanl.gov/svn/networkx/trunk networkx
$ cd networkx
$ python setup.py install
$ cd doc/examples/ubigraph
$ python atlas.py

Installing the Graphviz I will need for pygraphviz was less trivial:
I found ryandesign's collection of Mac graphviz builds
and the faq explains how to get graphviz on your path (I had to modify tcshrc as per the instructions)

(For other purposes on the mac, you can't beat Glenn Low's graphviz GUI )
Ryandesign's
faq even explains how to update the version of graphviz in the GUI package (which I haven't done).

I installed Xcode tools so I could compile pygraphviz....
And that allowed networkX's pygraphviz to install (python setup.py install)

Promising! I see that there will be a talk on networkX at SciPy next week