Powered by AppSignal & Oban Pro

Expanding limits: expand_limits

notebooks/expand_limits.livemd

Expanding limits: expand_limits

Mix.install([
  {:giggly, path: Path.join(__DIR__, "..")},
  {:kino, "~> 0.19"}
  ])

About this notebook

This notebook follows the examples on ggplot2's reference page for expand_limits(), in the order the page gives them. Each example shows ggplot2's code first and then Giggly's. An example Giggly cannot draw yet keeps its ggplot2 code and names what it is waiting for, so the page is also a list of what remains.

expand_limits() widens a plot's scales to include the values it is given, in every panel, by adding a layer that draws nothing at those values (a geom_blank()). ggplot2 now prefers giving a scale's limits a function instead, such as scale_x_continuous(limits = ~range(.x, 0)) to include zero. Giggly has no expand_limits(), and a scale's limits are numbers or values, never a function, as Giggly.Plot.lims/2 and the scale functions' limits: take them.

Including a value on an axis

p <- ggplot(mtcars, aes(mpg, wt)) + geom_point()
p + expand_limits(x = 0)
p + expand_limits(y = c(1, 9))
p + expand_limits(x = 0, y = 0)

Not in Giggly yet: expand_limits().

Widening a colour scale

The first plot widens a continuous colour scale to run from 2 to 10; the second adds 2, 4, 6, 8 and 10 to a discrete one, so its legend lists them all, though no car has 2 or 10 cylinders.

ggplot(mtcars, aes(mpg, wt)) +
  geom_point(aes(colour = cyl)) +
  expand_limits(colour = seq(2, 10, by = 2))
ggplot(mtcars, aes(mpg, wt)) +
  geom_point(aes(colour = factor(cyl))) +
  expand_limits(colour = factor(seq(2, 10, by = 2)))

Not in Giggly yet: expand_limits().