"HyperbolicSpringEmbedding" (Graph Layout Method)
"HyperbolicSpringEmbedding" (Graph Layout Method)
- Vertex layout for GraphLayout.
- Use hyperbolic spring embedding to lay out vertices of a graph.
Details & Options
- The hyperbolic spring embedding is a graph-drawing technique to position vertices of a graph on the Poincaré disk so that they minimize the mechanical energy when each edge corresponds to a spring.
- The hyperbolic spring embedding is typically used to lay out tree-like structured graphs.
- The following graph parameters can be given:
-
"EdgeWeighted" whether to use edge weights - Possible settings to control the energy minimization process include:
-
"EnergyControl" how the energy function is controlled during minimization "MaxIteration" maximum number of iterations "RandomSeed" seed for the random generator for initial vertex placement "StepControl" how step lengths are modified during energy minimization "StepLength" initial step length used in moving the vertices "Tolerance" tolerance used in terminating the process
Examples
open all close allBasic Examples (1)
Options (8)
"EdgeWeighted" (1)
With the setting "EdgeWeighted"True, edge weights are used:
edge = RandomInteger[#]# + 1& /@ Range[0, 10];
weight = RandomInteger[{1, 5}, 11];Graph[edge, EdgeWeight -> weight, GraphLayout -> {"HyperbolicSpringEmbedding", "EdgeWeighted" -> #}]& /@ {True, False}"EnergyControl" (1)
Use the option "EnergyControl"e to specify limitations on the total energy of the system during minimization:
edge = RandomInteger[#]# + 1& /@ Range[0, 30];Graph[edge, {GraphLayout -> {"HyperbolicSpringEmbedding", "EnergyControl" -> #}}]& /@ {Automatic, "Monotonic", "NonMonotonic"}"InferentialDistance" (1)
Use "InferentialDistance"d to specify a cutoff distance beyond which the interaction between vertices is assumed to be nonexistent:
edge = RandomInteger[#]# + 1& /@ Range[0, 30];Graph[edge, GraphLayout -> {"HyperbolicSpringEmbedding", "InferentialDistance" -> #}]& /@ {Automatic, .5, 2}"MaxIteration" (1)
Use "MaxIteration"it to specify a maximum number of iterations to be used in attempting to minimize the energy:
edge = RandomInteger[#]# + 1& /@ Range[0, 30];Graph[edge, GraphLayout -> {"HyperbolicSpringEmbedding", "MaxIteration" -> #}]& /@ {Automatic, 1, 2}"RandomSeed" (1)
"StepControl" (1)
Use "StepControl"method to define how step length is modified during energy minimization:
edge = RandomInteger[#]# + 1& /@ Range[0, 30];Graph[edge, GraphLayout -> {"HyperbolicSpringEmbedding", "StepControl" -> #}]& /@ {Automatic, "Monotonic", "NonMonotonic", "StrictlyMonotonic"}