Checks and returns selected coordinates from multiple input options, which can be either data (x-y) coordinates or npc (normalized parent coordinates).
Helper function internally used in ggpubr function to guess the type
of coordinates specified by the user. For example, in the function
stat_cor(), users can specify either the option label.x (data
coordinates) or label.x.npc (npc coordinates); those coordinates are
passed to get_coord(), which will make some checking and then return
a unique coordinates for the label position.
get_coord(
group = 1L,
data.ranges = NULL,
coord = NULL,
npc = "left",
step = 0.1,
margin.npc = 0.05
)integer ggplot's group id. Used to shift coordinates to avoid overlaps.
a numeric vector of length 2 containing the data ranges
(minimum and the maximum). Should be specified only when coord =
NULL and npc is specified. Used to convert npc to data
coordinates. Considered only when the argument npc is specified.
data coordinates (i.e., either x or y coordinates).
numeric (in [0-1]) or character vector of coordinates. If
character, should be one of c('right', 'left', 'bottom', 'top', 'center',
'centre', 'middle'). Note that, the data.ranges, step and
margin.npc, arguments are considered only when npc is
specified. The option npc is ignored when the argument coord is specified.
numeric value in [0-1]. The step size for shifting coordinates in npc units. Considered as horizontal step for x-axis and vertical step for y-axis. For y-axis, the step value can be negative to reverse the order of groups.
numeric [0-1] The margin added towards the nearest plotting area edge when converting character coordinates into npc.
a numeric vector representing data coordinates.
# If npc is specified, it is converted into data coordinates
get_coord(data.ranges = c(2, 20), npc = "left")
#> [1] 2.9
get_coord(data.ranges = c(2, 20), npc = 0.1)
#> [1] 3.8
# When coord is specified, no transformation is performed
# because this is assumed to be a data coordinate
get_coord(coord = 5)
#> [1] 5
# For grouped plots
res_top <- get_coord(
data.ranges = c(4.2, 36.4), group = c(1, 2, 3),
npc = "top", step = -0.1, margin.npc = 0
)
res_top
#> [1] 36.40 39.62 42.84