6
$\begingroup$

According to the documentation, GraphLayout has an EdgeBundling suboption, which can take the following values:

  • "DividedEdgeBundling"
  • "HierarchicalEdgeBundling"
  • "StraightLine"

What does each do, what suboptions do they have, and how do I use them?


Partial answer:

"StraightLine" seems self explanatory, but not that it's not the default:

Mathematica graphics

"DividedEdgeBundling" is described by István in this answer.

That leaves "HierarchicalEdgeBundling", which I cannot figure out. It seems to behave the same as "StraightLine" in naive attempts to use it.

The suboptions of these can be discovered by passing a wrong value and looking at the error message:

Mathematica graphics

This also reveals that there are several more suboptions to DividedEdgeBundling than the linked post above shows.

Mathematica graphics


Link to Community semi-cross-post

$\endgroup$
7
  • $\begingroup$ Related: (5308). $\endgroup$ Commented Oct 1, 2015 at 9:17
  • $\begingroup$ @Silvia Thanks! I actually found this and linked it in the question. So DividedEdgeBundling is mostly solved (except for understanding a few suboptions). What I'm really curious about is HierarchicalEdgeBundling. $\endgroup$ Commented Oct 1, 2015 at 9:30
  • $\begingroup$ Sorry I missed that link. Am curious about the "HierarchicalEdgeBundling" too. +1 $\endgroup$ Commented Oct 1, 2015 at 10:21
  • $\begingroup$ Try this: "EdgeLayout" -> {"HierarchicalEdgeBundling", "SplineWeight" -> Automatic}. $\endgroup$ Commented Oct 1, 2015 at 10:28
  • $\begingroup$ @Silvia I really wonder why this is not advertised more! Screenshot. Can you post an answer? $\endgroup$ Commented Oct 1, 2015 at 10:49

1 Answer 1

3
$\begingroup$

I can't find available settings other than Automatic, by which there seems no differences between "SplineWeight" and "LCARemove":

elst = RandomGraph[{10, 30}] // EdgeList; Graph[ elst, VertexLabels -> "Name", GraphLayout -> { "EdgeLayout" -> { "HierarchicalEdgeBundling", # -> Automatic } } ] & /@ {"SplineWeight", "LCARemove"} // FlipView 

Graph layout with "HierarchicalEdgeBundling"

Edit:

According to halmir, LCARemove take All and None. SplineWeight is not supported.

$\endgroup$
6
  • $\begingroup$ In LCARemove, LCA stands for lowest common ancestor. By trial and error, the values None and All work (and make a difference). $\endgroup$ Commented Oct 1, 2015 at 13:13
  • $\begingroup$ Yes, LCARemove take All and None. SplineWeight is not supported... $\endgroup$ Commented Oct 1, 2015 at 13:15
  • $\begingroup$ Some discussion of LCA removal can be found here: win.tue.nl/vis1/home/dholten/papers/bundles_infovis.pdf $\endgroup$ Commented Oct 1, 2015 at 13:25
  • $\begingroup$ @halmir What about DividedEdgeBundling? Could you explain some of the suboptions in an answer? $\endgroup$ Commented Oct 1, 2015 at 13:26
  • 1
    $\begingroup$ @halmir Two more questions: 1. Is there a better way to handle custom attributes? Part of this question is whether it's easy to transfer one attribute into another one, e.g. import a GML then use a custom property as standard EdgeCapacity. 2. There's a disconnect between WeightedAdjacencyGraph and WeightedAdjacencyMatrix in that one represents missing edges with Infinity, the other with 0. Is there some easy way to get them to use the same format? Can I choose whether I want to use Infinity or 0 for this purpose? $\endgroup$ Commented Oct 1, 2015 at 14:43

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.