Has fuel economy changed considerably between 1999 and 2008? Perhaps there is a difference if you also consider the car class? Experiment with facet_wrap()
, facet_grid()
, aesthetic mappings, and smoothing layers.
ggplot(_____) +
geom_point() +
facet_wrap(~___)
ggplot(_____) +
geom_point() +
geom_smooth() +
facet_grid(___ ~ ___)
► Solution:
We can split the simple scatterplot over two facets, one per year:
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_wrap(~year)
The smoothing layer seems to confirm a slight improvement, especially for engines with a displacement of three or more liters:
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
geom_smooth(mapping = aes(x = displ, y = hwy)) +
facet_wrap(~year)
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
We can also look at each car class in parallel.
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_grid(year~class)
But too many facets may be not as helpful, we can also use color:
ggplot(data = mpg) +
geom_point(
mapping = aes(x = displ, y = hwy, color = factor(year))
) +
geom_smooth(
mapping = aes(x = displ, y = hwy, color = factor(year)),
method = "lm"
) +
facet_wrap(~class)
What changes if you add the argument labeller = "label_both"
to the facet_wrap()
call?
► Solution:
This is useful if the value itself is not self-explanatory:
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_wrap(~cyl, labeller = "label_both")
Is it possible to use a different x and y scale for each facet? How?
► Solution:
Via the scales
argument, zooms in to the range of the corresponding scale(s).
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_wrap(
~cyl,
labeller = "label_both",
scales = "free_x"
)
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_wrap(
~cyl,
labeller = "label_both",
scales = "free_y"
)
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_wrap(
~cyl,
labeller = "label_both",
scales = "free"
)
Experiment with other arguments to facet_wrap()
and facet_grid()
.
Find more exercises in Section 3.5.1 of r4ds.
Copyright © 2019 Kirill Müller. Licensed under CC BY-NC 4.0.