I am looking to write a program that will show a graph to the user. The graph will change over time (the user should be able to right-click on the graph element and request more detailed information that will display the new bits of the graph), and the user will be able to drag parts of the graph around. Ideally, I would also like to be able to specify the relative layout certain parts of the graph, leaving the overall layout up to the library, but this is not essential.
I am trying to use a graph layout library. As far as I can tell, the two leading candidates are Graphviz and Dynagraph. The Dynagraph website suggests that Graphviz is intended for drawing static graphs and that the Dynagraph has been forked from Graphviz and contains algorithms for the graphs to be updated. It has a sample program called Dynasty that does exactly what I want. However, the Graphviz website contains an example program called Levy, which seems to do exactly what I want. Graphviz also seems to be much more widely used, judging by the results of Google (and SO).
Finally, I would like to encode part of the GUI in a language such as Python or Scheme, which makes me a little hesitant to use C ++, because I understand that it is harder to associate this with interpreters.
So my question is: which library is better for what I'm trying to do? Do they both have strengths and weaknesses? One of them actually stopped developing and just leaves his site to confuse me?
(I saw a Simple Dynamic Graph for C ++ and an open source library for developing oriented graphs , but I cannot say if they are correct regarding the choice of Graphviz or Dynagraph due to Lefty, as well as language problems.)
graphviz graph-drawing
Noah lavine
source share