R 动画缩放参数

R 动画缩放参数,r,animated-gif,gganimate,R,Animated Gif,Gganimate,我正在寻找一种优雅/简洁的方法来制作R动画,该动画在我的y比例变换中移动参数。 假设我有以下数据和图表: library(tidyverse); library(gganimate); library(scales) my_data <- tibble(time = 1:100, value = (5*sin(time/100))^6 + (1E3*sin(time/5))) scale_plot <- function(sig) { ggplot(my_data, aes(t

我正在寻找一种优雅/简洁的方法来制作R动画,该动画在我的
y
比例变换中移动参数。

假设我有以下数据和图表:

library(tidyverse); library(gganimate); library(scales)
my_data <- tibble(time  = 1:100, value = (5*sin(time/100))^6 + (1E3*sin(time/5)))
scale_plot <- function(sig) {
  ggplot(my_data, aes(time, value)) + 
         geom_line() + labs(title = paste("sigma =", {{ sig }})) +
         scale_y_continuous(trans = pseudo_log_trans(sigma = sig))  
}

我想要一个优雅/简洁的方式来制作一个动画,在这些动画之间切换。我遇到过使用循环生成一系列静态图像的方法,然后使用
gifski
animation
之类的方法将它们编译成GIF。(请参阅。)理想情况下,我希望找到一种使用
gganimate
的方法,但到目前为止,我只知道如何为数据中的更改或视口中的更改设置动画(例如,使用
gganimate::view_manual
),而不是转换的参数。有没有比“手动”构造帧更简洁的方法呢?

采用这种方法,可以通过创建帧,然后使用
动画
包将它们组合起来。使用
gganimate
有没有更好的方法

library(animation); library(Cairo)
sig_seq = (10:150)^2
oopt = ani.options(interval = 1/10)
CairoPNG(filename = ani.options("img.fmt"))  #using Cairo device for smoother antialiasing
saveGIF({for (i in 1:length(sig_seq)) {
  print(scale_plot(sig_seq[i]))
  print(paste0(i, " out of ",length(sig_seq)))
  ani.pause()}
},movie.name="sigma_anim.gif", ani.width = 300, ani.height = 200) 

scale_plot(200)   # toward log
library(animation); library(Cairo)
sig_seq = (10:150)^2
oopt = ani.options(interval = 1/10)
CairoPNG(filename = ani.options("img.fmt"))  #using Cairo device for smoother antialiasing
saveGIF({for (i in 1:length(sig_seq)) {
  print(scale_plot(sig_seq[i]))
  print(paste0(i, " out of ",length(sig_seq)))
  ani.pause()}
},movie.name="sigma_anim.gif", ani.width = 300, ani.height = 200)