% Generated by roxygen2: do not edit by hand % Please edit documentation in R/scale-binned.R \name{scale_binned} \alias{scale_x_binned} \alias{scale_y_binned} \title{Positional scales for binning continuous data (x & y)} \usage{ scale_x_binned( name = waiver(), n.breaks = 10, nice.breaks = TRUE, breaks = waiver(), labels = waiver(), limits = NULL, expand = waiver(), oob = squish, na.value = NA_real_, right = TRUE, show.limits = FALSE, trans = "identity", guide = waiver(), position = "bottom" ) scale_y_binned( name = waiver(), n.breaks = 10, nice.breaks = TRUE, breaks = waiver(), labels = waiver(), limits = NULL, expand = waiver(), oob = squish, na.value = NA_real_, right = TRUE, show.limits = FALSE, trans = "identity", guide = waiver(), position = "left" ) } \arguments{ \item{name}{The name of the scale. Used as the axis or legend title. If \code{waiver()}, the default, the name of the scale is taken from the first mapping used for that aesthetic. If \code{NULL}, the legend title will be omitted.} \item{n.breaks}{The number of break points to create if breaks are not given directly.} \item{nice.breaks}{Logical. Should breaks be attempted placed at nice values instead of exactly evenly spaced between the limits. If \code{TRUE} (default) the scale will ask the transformation object to create breaks, and this may result in a different number of breaks than requested. Ignored if breaks are given explicitly.} \item{breaks}{One of: \itemize{ \item \code{NULL} for no breaks \item \code{waiver()} for the default breaks computed by the \link[scales:trans_new]{transformation object} \item A numeric vector of positions \item A function that takes the limits as input and returns breaks as output (e.g., a function returned by \code{\link[scales:breaks_extended]{scales::extended_breaks()}}). Also accepts rlang \link[rlang:as_function]{lambda} function notation. }} \item{labels}{One of: \itemize{ \item \code{NULL} for no labels \item \code{waiver()} for the default labels computed by the transformation object \item A character vector giving labels (must be same length as \code{breaks}) \item A function that takes the breaks as input and returns labels as output. Also accepts rlang \link[rlang:as_function]{lambda} function notation. }} \item{limits}{One of: \itemize{ \item \code{NULL} to use the default scale range \item A numeric vector of length two providing limits of the scale. Use \code{NA} to refer to the existing minimum or maximum \item A function that accepts the existing (automatic) limits and returns new limits. Also accepts rlang \link[rlang:as_function]{lambda} function notation. Note that setting limits on positional scales will \strong{remove} data outside of the limits. If the purpose is to zoom, use the limit argument in the coordinate system (see \code{\link[=coord_cartesian]{coord_cartesian()}}). }} \item{expand}{For position scales, a vector of range expansion constants used to add some padding around the data to ensure that they are placed some distance away from the axes. Use the convenience function \code{\link[=expansion]{expansion()}} to generate the values for the \code{expand} argument. The defaults are to expand the scale by 5\% on each side for continuous variables, and by 0.6 units on each side for discrete variables.} \item{oob}{One of: \itemize{ \item Function that handles limits outside of the scale limits (out of bounds). Also accepts rlang \link[rlang:as_function]{lambda} function notation. \item The default (\code{\link[scales:oob]{scales::censor()}}) replaces out of bounds values with \code{NA}. \item \code{\link[scales:oob]{scales::squish()}} for squishing out of bounds values into range. \item \code{\link[scales:oob]{scales::squish_infinite()}} for squishing infinite values into range. }} \item{na.value}{Missing values will be replaced with this value.} \item{right}{Should values on the border between bins be part of the right (upper) bin?} \item{show.limits}{should the limits of the scale appear as ticks} \item{trans}{For continuous scales, the name of a transformation object or the object itself. Built-in transformations include "asn", "atanh", "boxcox", "date", "exp", "hms", "identity", "log", "log10", "log1p", "log2", "logit", "modulus", "probability", "probit", "pseudo_log", "reciprocal", "reverse", "sqrt" and "time". A transformation object bundles together a transform, its inverse, and methods for generating breaks and labels. Transformation objects are defined in the scales package, and are called \verb{_trans} (e.g., \code{\link[scales:boxcox_trans]{scales::boxcox_trans()}}). You can create your own transformation with \code{\link[scales:trans_new]{scales::trans_new()}}.} \item{guide}{A function used to create a guide or its name. See \code{\link[=guides]{guides()}} for more information.} \item{position}{For position scales, The position of the axis. \code{left} or \code{right} for y axes, \code{top} or \code{bottom} for x axes.} } \description{ \code{scale_x_binned()} and \code{scale_y_binned()} are scales that discretize continuous position data. You can use these scales to transform continuous inputs before using it with a geom that requires discrete positions. An example is using \code{scale_x_binned()} with \code{\link[=geom_bar]{geom_bar()}} to create a histogram. } \examples{ # Create a histogram by binning the x-axis ggplot(mtcars) + geom_bar(aes(mpg)) + scale_x_binned() } \seealso{ Other position scales: \code{\link{scale_x_continuous}()}, \code{\link{scale_x_date}()}, \code{\link{scale_x_discrete}()} } \concept{position scales}