Nothing
#' Checks and Returns Data Coordinates from Multiple Input Options
#'
#' @description 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 \code{ggpubr} function to guess the type
#' of coordinates specified by the user. For example, in the function
#' \code{stat_cor()}, users can specify either the option \code{label.x} (data
#' coordinates) or \code{label.x.npc} (npc coordinates); those coordinates are
#' passed to \code{get_coord()}, which will make some checking and then return
#' a unique coordinates for the label position.
#' @inheritParams as_npc
#' @param data.ranges a numeric vector of length 2 containing the data ranges
#' (minimum and the maximum). Should be specified only when \code{coord =
#' NULL} and \code{npc} is specified. Used to convert \code{npc} to data
#' coordinates. Considered only when the argument \code{npc} is specified.
#' @param coord data coordinates (i.e., either x or y coordinates).
#' @param npc 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 \code{data.ranges}, \code{step} and
#' \code{margin.npc}, arguments are considered only when \code{npc} is
#' specified. The option \code{npc} is ignored when the argument \code{coord} is specified.
#' @return a numeric vector representing data coordinates.
#' @seealso \code{\link{as_npc}}, \code{\link{npc_to_data_coord}}.
#' @examples
#' # If npc is specified, it is converted into data coordinates
#' get_coord(data.ranges = c(2, 20), npc = "left")
#' get_coord(data.ranges = c(2, 20), npc = 0.1)
#'
#' # When coord is specified, no transformation is performed
#' # because this is assumed to be a data coordinate
#' get_coord(coord = 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
#'
#' @rdname get_coord
#' @export
get_coord <- function(group = 1L, data.ranges = NULL, coord = NULL, npc = "left",
step = 0.1, margin.npc = 0.05){
if(!is.null(coord)){
if(!is.numeric(group)){
stop("get_coord: 'group' should be numeric. ",
"Current class is: ", class(group))
}
# If coords are too short, they are recycled.
coord <- ifelse(length(coord) >= group, coord[group], coord[1])
return(coord)
}
else if(!is.null(npc)){
if(is.null(data.ranges)){
stop("Specify the option data.ranges", call. = FALSE)
}
npc <- ifelse(length(npc) >= group, npc[group], npc[1])
coord <- as_npc(
npc, group = group, step = step,
margin.npc = margin.npc
) %>%
npc_to_data_coord(data.ranges)
}
coord
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.