R动画包:曲线的动画仅显示一个空白帧和结束

R动画包:曲线的动画仅显示一个空白帧和结束,r,animation,ggplot2,R,Animation,Ggplot2,我对曲线的动画有问题。 我有一个data.table,它存储了我要为每条曲线绘制的点。在每个连续的帧中,我想从data.table中绘制下一列 例如: library(data.table) library(ggplot2) library(animation) x <- seq(1, 10, 0.1) y1 <- x y2 <- 2*x y3 <- 3*x y4 <- 4*x y5 <- 5*x te

我对曲线的动画有问题。 我有一个data.table,它存储了我要为每条曲线绘制的点。在每个连续的帧中,我想从data.table中绘制下一列

例如:

library(data.table)
library(ggplot2)
library(animation)
    x <- seq(1, 10, 0.1)
    y1 <- x
    y2 <- 2*x
    y3 <- 3*x
    y4 <- 4*x
    y5 <- 5*x

    test <- data.table(x = x,
    y1 = y1,
    y2 = y2,
    y3 = y3,
    y4 = y4,
    y5 = y5)
库(data.table)
图书馆(GG2)
图书馆(动画)

我不认为这是一个数据表问题。执行以下操作时会发生什么:
plot(test[[“x”]],test[[cols[i]])
其中
cols
只是一个字符向量?另外,如果您在
data.frame
上执行相同操作,会发生什么?谢谢@Arun。我试过你的建议,但结果是一样的。像这样访问列在脚本内部工作。所以我认为你是对的,这不是数据表问题。我删除了关键字。我不知道你可以这样称呼一个专栏。这在可读性方面也更好。我注意到,
ffmpeg
s输出文本显示frame=5fps=0.0q=-1.0lsize=33kB时间=00:00:03.00比特率=91.2kbit/s。也许fps=0.0说明了这个问题?我不知道答案(没有使用
animation
package),但我的目的是排除data.table作为潜在问题,以便您(或其他人)可以关注其他包。祝你好运
drawCurve <- function(i){
    cols <- c(quote(y1), quote(y2), quote(y3), quote(y4), quote(y5))
    plot(test[, x], test[, eval(cols[[i]])])
}
drawAnimation <- function(){
  for(i in 1:5){
    dev.hold()
    drawCurve(i)
    ani.pause()
  }
}
 oopt <- ani.options(interval = 1, nmax = 5)

oopts = ani.options(ffmpeg = "D:/ffmpeg-20141030-git-7f24e1e-win32-static/bin/ffmpeg.exe")
if (.Platform$OS.type != "windows") ani.options(ffmpeg = "ffmpeg")
saveVideo({
    drawAnimation()
}, video.name = "Curve.mp4", other.opts = "-b 800k")
ani.options(oopts)