Automatic graph layout algorithms and libraries

Automatic graph layout algorithms and libraries


problem:

Automatically laying out a graph so that nodes (boxes) do not overlap, and so that the minimum number of edges (connnecting lines) are crossing, is a computational and programming challenge!

Some layout problems have no perfect solution, and many have several possible 'acceptable' solutions.

solutions:

This is not a new field of research, and there are already many algorithms designed for implementation:

- Sugiyama - a Layered Graph Drawing algorithm. Essentially a set of algorithms that arrange the graph into layers, which are then optimised. More details here and here.


libraries in C#:

- Microsoft's MSAGL = https://github.com/microsoft/automatic-graph-layout

- Quickgraph = https://github.com/KeRNeLith/QuikGraph - a fork of the older https://github.com/YaccConstructor/QuickGraph


libraries in JavaScript:

- D3-Dag - includes Sugiyama

- ogdfjs - JavaScript port of the Open Graph Drawing Framework and and Open Graph algorithms and Data structures Framework



Comments