6

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

Szabolcs
  • 234,956
  • 30
  • 623
  • 1,263

1 Answers1

3

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.

Silvia
  • 27,556
  • 3
  • 84
  • 164
  • In LCARemove, LCA stands for lowest common ancestor. By trial and error, the values None and All work (and make a difference). – Szabolcs Oct 01 '15 at 13:13
  • Yes, LCARemove take All and None. SplineWeight is not supported... – halmir Oct 01 '15 at 13:15
  • Some discussion of LCA removal can be found here: http://www.win.tue.nl/vis1/home/dholten/papers/bundles_infovis.pdf – Szabolcs Oct 01 '15 at 13:25
  • @halmir What about DividedEdgeBundling? Could you explain some of the suboptions in an answer? – Szabolcs Oct 01 '15 at 13:26
  • @halmir Thanks! I have added that in the answer, please feel free to edit it. – Silvia Oct 01 '15 at 14:22
  • 1
    @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? – Szabolcs Oct 01 '15 at 14:43