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.
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")
)A numeric matrix with `n` rows and `dim` columns.
Two-column integer matrix of edges (1-based vertex ids).
Number of vertices.
Adjacency list (1-based) for undirected graphs.
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.
Optional vector of edge weights for edges. All
weights must be finite and strictly positive.
Layout dimension (2 or 3). Default is 3.
Initial placement strategy. "circle" is only used for 2D.
Optional tuning preset. NULL uses 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.
Initial rounds for refinement.
Final rounds for refinement.
Number of initial vertices in the coarsest level.
Maximum number of graph-distance neighbors retained for local refinement at each filtration level.
Main local temperature adaptation rate in [0, 1].
Non-negative boost factor applied when successive displacements have a consistent direction.
Non-negative multiplier applied to GRIP's
finest-level repulsive force scale. 1 keeps the historical
repulsion strength; 0 disables that repulsive term.
Initial temperature factor.
Optional RNG seed for reproducibility. If NULL, uses current time.
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.
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.
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)
Run the code above in your browser using DataLab