% Generated by roxygen2: do not edit by hand % Please edit documentation in R/limits.r \name{lims} \alias{lims} \alias{xlim} \alias{ylim} \title{Set scale limits} \usage{ lims(...) xlim(...) ylim(...) } \arguments{ \item{...}{For \code{xlim()} and \code{ylim()}: Two numeric values, specifying the left/lower limit and the right/upper limit of the scale. If the larger value is given first, the scale will be reversed. You can leave one value as \code{NA} if you want to compute the corresponding limit from the range of the data. For \code{lims()}: A name--value pair. The name must be an aesthetic, and the value must be either a length-2 numeric, a character, a factor, or a date/time. A numeric value will create a continuous scale. If the larger value comes first, the scale will be reversed. You can leave one value as \code{NA} if you want to compute the corresponding limit from the range of the data. A character or factor value will create a discrete scale. A date-time value will create a continuous date/time scale.} } \description{ This is a shortcut for supplying the \code{limits} argument to the individual scales. By default, any values outside the limits specified are replaced with \code{NA}. Be warned that this will remove data outside the limits and this can produce unintended results. For changing x or y axis limits \strong{without} dropping data observations, see \code{\link[=coord_cartesian]{coord_cartesian()}}. } \examples{ # Zoom into a specified area ggplot(mtcars, aes(mpg, wt)) + geom_point() + xlim(15, 20) # reverse scale ggplot(mtcars, aes(mpg, wt)) + geom_point() + xlim(20, 15) # with automatic lower limit ggplot(mtcars, aes(mpg, wt)) + geom_point() + xlim(NA, 20) # You can also supply limits that are larger than the data. # This is useful if you want to match scales across different plots small <- subset(mtcars, cyl == 4) big <- subset(mtcars, cyl > 4) ggplot(small, aes(mpg, wt, colour = factor(cyl))) + geom_point() + lims(colour = c("4", "6", "8")) ggplot(big, aes(mpg, wt, colour = factor(cyl))) + geom_point() + lims(colour = c("4", "6", "8")) # There are two ways of setting the axis limits: with limits or # with coordinate systems. They work in two rather different ways. last_month <- Sys.Date() - 0:59 df <- data.frame( date = last_month, price = c(rnorm(30, mean = 15), runif(30) + 0.2 * (1:30)) ) p <- ggplot(df, aes(date, price)) + geom_line() + stat_smooth() p # Setting the limits with the scale discards all data outside the range. p + lims(x= c(Sys.Date() - 30, NA), y = c(10, 20)) # For changing x or y axis limits **without** dropping data # observations use [coord_cartesian()]. Setting the limits on the # coordinate system performs a visual zoom. p + coord_cartesian(xlim =c(Sys.Date() - 30, NA), ylim = c(10, 20)) } \seealso{ To expand the range of a plot to always include certain values, see \code{\link[=expand_limits]{expand_limits()}}. For other types of data, see \code{\link[=scale_x_discrete]{scale_x_discrete()}}, \code{\link[=scale_x_continuous]{scale_x_continuous()}}, \code{\link[=scale_x_date]{scale_x_date()}}. }