This function preserves the original local-force wrapper and historical
default values that were previously exposed as grip().
Use it for backwards-compatible comparisons or when you explicitly want the
pre-global-repulsion behavior.
Usage
legacy.grip(
edges = NULL,
n = NULL,
adj_list = NULL,
weight_list = NULL,
edge_weights = NULL,
dim = 3,
placement = c("barycenter", "circle"),
preset = NULL,
rounds = 20,
final_rounds = 25,
num_init = 36,
num_nbrs = 10,
r = 0.15,
s = 3,
repulsion_factor = 1,
tinit_factor = 6,
seed = 6,
disconnected = c("components", "error")
)Arguments
- edges
Two-column integer matrix of edges (1-based vertex ids).
- n
Number of vertices.
- adj_list
Adjacency list (1-based) for undirected graphs.
- weight_list
Optional parallel list of edge weights (edge lengths). If NULL, all edges are treated as weight 1. All weights must be finite and strictly positive.
- edge_weights
Optional vector of edge weights for
edges. All weights must be finite and strictly positive.- dim
Layout dimension (2 or 3). Default is 3.
- placement
Initial placement strategy. "circle" is only used for 2D.
- preset
Optional tuning preset.
NULLuses the historical defaults."carpet"applies a preset tuned for Sierpinski-carpet-like graphs and validated on carpet levels 3 and 4."mesh"applies a preset tuned for rectangular lattice graphs and validated on 8x8 and 12x12 mesh layouts."torus"applies a preset tuned for 3D torus layouts and validated on torus sizes from 8x8 through 20x20."tree"applies a preset tuned for symmetric force-directed layouts of tree-like graphs and validated on binary trees of depths 5 and 6. Presets only fill in tuning arguments that you did not supply explicitly.- rounds
Initial rounds for refinement.
- final_rounds
Final rounds for refinement.
- num_init
Number of initial vertices in the coarsest level.
- num_nbrs
Maximum number of graph-distance neighbors retained for local refinement at each filtration level.
- r
Main local temperature adaptation rate in
[0, 1].- s
Non-negative boost factor applied when successive displacements have a consistent direction.
- repulsion_factor
Non-negative multiplier applied to GRIP's finest-level repulsive force scale.
1keeps the historical repulsion strength;0disables that repulsive term.- tinit_factor
Initial temperature factor.
- seed
Optional RNG seed for reproducibility. If NULL, uses current time.
- disconnected
How to handle disconnected graphs:
"components"(default) lays out each connected component separately and packs them into one coordinate matrix;"error"stops with an error.
References
Gajer, P. and Kobourov, S.G. (2002). GRIP: Graph dRawing with Intelligent Placement. Journal of Graph Algorithms and Applications, 6(3), 203–224. doi:10.7155/jgaa.00052.
Gajer, P., Goodrich, M.T. and Kobourov, S.G. (2004). A multi-dimensional approach to force-directed layouts of large graphs. Computational Geometry, 29(1), 3–18. doi:10.1016/j.comgeo.2004.03.014.
Examples
edges <- cbind(1:5, 2:6)
coords <- legacy.grip(edges, n = 6, dim = 2,
placement = "barycenter",
rounds = 5, final_rounds = 5,
num_init = 3, num_nbrs = 4,
seed = 1)
round(coords, 3)
#> [,1] [,2]
#> [1,] -53.098 28.919
#> [2,] -37.729 12.979
#> [3,] -17.147 -5.807
#> [4,] 3.482 -19.158
#> [5,] 21.370 -24.828
#> [6,] 36.977 -31.153