Je veux ralentir la vitesse de transition entre les états lorsque j'utilise library(gganimate)
.
Voici un mini exemple:
# devtools::install_github("thomasp85/gganimate")
library(gganimate) # v0.9.9.9999
dat_sim <- function(t_state, d_state) {
data.frame(
x = runif(1000, 0, 1),
y = runif(1000, 0, 1),
t_state = t_state*d_state
)
}
dat <- purrr::map_df(1:100, ~ dat_sim(., 1))
ggplot(dat, aes(x, y)) +
geom_hex(bins = 5) +
theme_void() +
lims(x = c(.3, .7),
y = c(.3, .7)) +
theme(legend.position = "none") +
transition_time(t_state)
Mon comportement idéal serait beaucoup plus lent (10-100x), donc les changements de couleur évoluent progressivement et personne n'a de crise.
Si j'essaie d'utiliser transition_states()
pour un contrôle plus manuel, j'obtiens un gif avec des cadres principalement vides. J'ai essayé différentes combinaisons pour transition_legnth=
Et state_length=
Sans effet notable.
ggplot(dat, aes(x, y)) +
geom_hex(bins = 5) +
theme_void() +
lims(x = c(.3, .7),
y = c(.3, .7)) +
theme(legend.position = "none") +
transition_states(t_state, transition_length = .1, state_length = 2)
J'ai trouvé dans docsanimate
fonction qui peut prendre fps et détails des paramètres.
@ param fps La fréquence d'images de l'animation en images/s
@ param détail Le nombre d'images supplémentaires à calculer, par image
Le résultat:
p <- ggplot(dat, aes(x, y)) +
geom_hex(bins = 5) +
theme_void() +
lims(x = c(.3, .7),
y = c(.3, .7)) +
theme(legend.position = "none") +
transition_time(t_state)
animate(p, fps=1)
Là aussi, vous pouvez spécifier un format de sortie tel que png, jpeg, svg.