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
Comments
Post a Comment