# 'Zoom in' on `ggplot2` figures

Learn the difference between zooming in with scales and coordinates.

# Original figure

``````library(ggplot2)
ggplot(mtcars, aes(x = factor(cyl), y = mpg)) +
geom_boxplot()
`````` # “Zoom in” with scales

Data points outside the limits are considered to be `NA`. Note that this will alter all calculated geoms.

``````ggplot(mtcars, aes(x = factor(cyl), y = mpg)) +
geom_boxplot() +
scale_y_continuous(limits = c(20, 25))
``````
``````## Warning: Removed 24 rows containing non-finite values (stat_boxplot).
`````` # “Zoom in” with coord

This doesn’t affect the values:

``````ggplot(mtcars, aes(x = factor(cyl), y = mpg)) +
geom_boxplot() +
coord_cartesian(ylim = c(20, 25))
`````` Note that you can use only one `coord`. Only the last one will have an effect on the plot.

``````ggplot(mtcars, aes(x = factor(cyl), y = mpg)) +
geom_boxplot() +
coord_cartesian(ylim = c(20, 25)) +
coord_flip()
``````
``````## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
`````` ``````ggplot(mtcars, aes(x = factor(cyl), y = mpg)) +
geom_boxplot() +
coord_flip() +
coord_cartesian(ylim = c(20, 25))
``````
``````## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
`````` Set the limits in `coord_flip` to get the effects of both.

``````ggplot(mtcars, aes(x = factor(cyl), y = mpg)) +
geom_boxplot() +
coord_flip(ylim = c(20, 25))
`````` 