2024-12-28
How do we go from this
to this?
Requires coordinated modification of multiple elements:
scale_*()
functions)scale
and bandwidth
to shape ridgelinesrel_min_height
to cut ridgelines near zeroscale_*()
functions to specify axis labelsggplot(lincoln_temps) +
aes(x = mean_temp, y = month_long) +
geom_density_ridges(
scale = 3, bandwidth = 3.4,
rel_min_height = 0.01
) +
scale_x_continuous(
name = "mean temperature (°F)",
expand = c(0, 0)
) +
scale_y_discrete(
name = NULL,
expand = expansion(add = c(0.2, 2.6))
) +
theme_minimal_grid() # from cowplot
ggplot(lincoln_temps) +
aes(x = mean_temp, y = month_long) +
geom_density_ridges(
scale = 3, bandwidth = 3.4,
rel_min_height = 0.01
) +
scale_x_continuous(
name = "mean temperature (°F)",
expand = c(0, 0)
) +
scale_y_discrete(
name = NULL,
expand = expansion(add = c(0.2, 2.6))
) +
theme_minimal_grid() +
theme(
axis.text.y = element_text(vjust = 0)
)
ggplot(lincoln_temps) +
aes(x = mean_temp, y = month_long) +
geom_density_ridges(
scale = 3, bandwidth = 3.4,
rel_min_height = 0.01,
fill = "#7DCCFF"
) +
scale_x_continuous(
name = "mean temperature (°F)",
expand = c(0, 0)
) +
scale_y_discrete(
name = NULL,
expand = expansion(add = c(0.2, 2.6))
) +
theme_minimal_grid() +
theme(
axis.text.y = element_text(vjust = 0)
)
ggplot(lincoln_temps) +
aes(x = mean_temp, y = month_long) +
geom_density_ridges(
scale = 3, bandwidth = 3.4,
rel_min_height = 0.01,
fill = "#7DCCFF",
color = "white"
) +
scale_x_continuous(
name = "mean temperature (°F)",
expand = c(0, 0)
) +
scale_y_discrete(
name = NULL,
expand = expansion(add = c(0.2, 2.6))
) +
theme_minimal_grid() +
theme(
axis.text.y = element_text(vjust = 0)
)
The element axis.text
has its own color set in the theme. Therefore it doesn’t inherit from text
.
element_blank()
element_blank()
element_rect()
element_rect()
element_rect()
element_rect()
legend.position
ggplot(penguins) +
aes(flipper_length_mm, body_mass_g) +
geom_point(aes(color = species)) +
theme_minimal_grid() +
theme(
legend.box.background = element_rect(
fill = "aliceblue",
color = "steelblue4" # line color
),
legend.box.margin = margin(7, 7, 7, 7),
# legend on top of plot
legend.position = "top"
)
legend.position
ggplot(penguins) +
aes(flipper_length_mm, body_mass_g) +
geom_point(aes(color = species)) +
theme_minimal_grid() +
theme(
legend.box.background = element_rect(
fill = "aliceblue",
color = "steelblue4" # line color
),
legend.box.margin = margin(7, 7, 7, 7),
# legend inside plot
legend.position = "inside",
# relative position inside plot panel
legend.position.inside = c(0.98, 0.02),
# justification relative to position
legend.justification = c(1, 0)
)