JuliaGraphs / NetworkLayout.jl

Layout algorithms for graphs and trees in pure Julia.
Other
97 stars 22 forks source link

Enhancement: Directed Acyclic Graph Layout #20

Open tawheeler opened 4 years ago

tawheeler commented 4 years ago

NetworkLayout.jl currently has the Buchheim algorithm for laying out trees. Often data sets are hierarchical, but are not trees. It'd be great to have a layout algorithm for directed acyclic graphs, such as the Sugiyama method or ideally something similar to GraphViz dot.

oxinabox commented 3 years ago

I am preparing to release https://github.com/oxinabox/LayeredLayouts.jl which does have algorithms for DAG layout. It currently just has one, but its a good one (provably optimal in number of crossings). Basic docs should be up shortly

SimonDanisch commented 3 years ago

Any reason to not put it under the same API under NetworkLayout?

simonschoelly commented 3 years ago

I wonder how much NetworkLayout.jl is still maintained. Apparently it is still a dependency of GraphRecipes.jl, so it must still work but the current situation is:

Given that GraphPlot.jl is also not in the best state, I wonder if some effort should be put into NetworkLayout.jl so that it is usually from multiple graph plotting packages.

SimonDanisch commented 3 years ago

Yeah, that's the idea^^ I'm simply not aware of anyone using it, and nobody has been complaining about anything, that's why there hasn't been any commits...

oxinabox commented 3 years ago

Any reason to not put it under the same API under NetworkLayout?

It has huge dependencies. JuMP, ECOS, and Cbc. https://github.com/oxinabox/LayeredLayouts.jl/blob/c72cdbcbd999c17b9f524f5ed3c807df3a8d7ba3/Project.toml#L7-L13

SimonDanisch commented 3 years ago

Has it? image Am I missing something?

SimonDanisch commented 3 years ago

Ah, lol, I guess you mean the other package :D