Easing defines how a value change to another during tweening. Will it progress linearly, or maybe start slowly and then build up momentum. In gganimate, each aesthetic or computed variable can be tweened with individual easing functions using the ease_aes() function. All easing functions implemented in tweenr are available, see tweenr::display_ease for an overview. Setting an ease for x and/or y will also affect the other related positional aesthetics (e.g. xmin, yend, etc).

ease_aes(default = "linear", ...)

Arguments

default

The default easing function to use (defaults to 'linear')

...

Override easing for specific aesthetics

Easing functions

  • quadratic Models a power-of-2 function

  • cubic Models a power-of-3 function

  • quartic Models a power-of-4 function

  • quintic Models a power-of-5 function

  • sine Models a sine function

  • circular Models a pi/2 circle arc

  • exponential Models an exponential function

  • elastic Models an elastic release of energy

  • back Models a pullback and relase

  • bounce Models the bouncing of a ball

Modifiers

  • -in The easing function is applied as-is

  • -out The easing function is applied in reverse

  • -in-out The first half of the transition it is applied as-is, while in the last half it is reversed

Examples

anim <- ggplot(mtcars, aes(mpg, disp)) +
  transition_states(gear, transition_length = 2, state_length = 1) +
  enter_fade() +
  exit_fade()

if (FALSE) {
# Default uses linear easing
animate(anim)
}

# Change all to 'cubic-in-out' for a smoother appearance
anim1 <- anim +
  ease_aes('cubic-in-out')
if (FALSE) {
animate(anim1)
}

# Only change easing of y variables
anim2 <- anim +
  ease_aes(y = 'bounce-in')
if (FALSE) {
animate(anim2)
}