Существует довольно много способов отображения графиков с использованием различных алгоритмов компоновки. Двумя основными из них являются алгоритм компоновки с принудительным направлением, который может быть алгоритмом непрерывной компоновки с использованием принципа двухтактного преобразования. Следующим является алгоритм компоновки GEM, который использует элементарный физический подход для определения наилучшего соответствия.
Вот несколько примеров:
http://vis.stanford.edu/protovis/ex/force.html
bitbucket.org / bwalenz / Алгоритмы / SRC /
Протовис, наверное, самый функциональный. Ссылка bitbucket является реализацией алгоритма GEM, но без визуализации. Он просто выкладывает узлы / ребра.