This is a shortcut for supplying the limits argument to the individual
scales. By default, any values outside the limits specified are replaced with
NA. Be warned that this will remove data outside the limits and this can
produce unintended results. For changing x or y axis limits without
dropping data observations, see coord_cartesian().
lims(...) xlim(...) ylim(...)
| ... | For For |
|---|
To expand the range of a plot to always include
certain values, see expand_limits(). For other types of data, see
scale_x_discrete(), scale_x_continuous(), scale_x_date().
#> Warning: Removed 19 rows containing missing values (geom_point).#> Warning: Removed 19 rows containing missing values (geom_point).#> Warning: Removed 14 rows containing missing values (geom_point).# 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"))# 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))#>#> Warning: Removed 30 rows containing non-finite values (stat_smooth).#> Warning: Removed 30 row(s) containing missing values (geom_path).# 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))#>