Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:“;无效辩论`-延迟';有动画和情节_R_Animation_Ggplot2 - Fatal编程技术网

R:“;无效辩论`-延迟';有动画和情节

R:“;无效辩论`-延迟';有动画和情节,r,animation,ggplot2,R,Animation,Ggplot2,我正试图从一个大数据集(从一个循环的科学实验中)用R绘制一个动画图,以可视化两个变量随时间的变化。我正在使用动画库,只需: saveGIF( for(i in 1:100){ mygraph(i) }, interval = 0.1, ani.width = 640, ani.height = 480) 其中mygraph(i)仅绘制循环i的图形。如果我使用plot()来绘制图形,那么它工作得非常好,但是如果我改用ggplot(我想这样做,因为我最终想用它来绘制更复杂的图形),

我正试图从一个大数据集(从一个循环的科学实验中)用R绘制一个动画图,以可视化两个变量随时间的变化。我正在使用
动画
库,只需:

saveGIF(
    for(i in 1:100){
    mygraph(i)
}, interval = 0.1, ani.width = 640, ani.height = 480)
其中
mygraph(i)
仅绘制循环i的图形。如果我使用
plot()
来绘制图形,那么它工作得非常好,但是如果我改用ggplot(我想这样做,因为我最终想用它来绘制更复杂的图形),那么它就不工作了,我会得到以下输出:

Executing: 
'convert' -loop 0 -delay 'animation.gif'
convert: InvalidArgument `-delay': animation.gif @ error/convert.c/ConvertImageCommand/1161.
an error occurred in the conversion... see Notes in ?im.convert
[1] FALSE 
我对R非常陌生,所以我有点卡住了,我还没有从查看
?im.convert
或四处搜索中找到解决方案。任何建议都将不胜感激

根据请求使用虚拟数据的示例:

library(animation)
library(ggplot2)

x <- 1:20
y <- 21:40
z <- c(1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4)
data <- data.frame(x,y,z)

mygraph <- function(i) {
  plot(data$x[data$z == i], 
       data$y[data$z == i], 
       title(title))
}

saveGIF(
  for(i in 1:4){
    title <- paste("Cycle", i, sep=" ")
    mygraph(i)
  }, interval = 0.5, ani.width = 640, ani.height = 480)

…然后它会给出如上所述的错误。

如果将
ggplot
包装在
print()
语句中,则这似乎有效,例如

mygraph <- function(i) {
  g <- ggplot() +
    geom_point(aes(x=data$x[data$z == i], y=data$x[data$z == i]))
  print(g)
}

mygraph您能给我们一个小的可复制的例子吗?用一个简化的例子编辑了我的原始问题,这给了我同样的错误。非常感谢,这看起来像预期的那样工作!如果这个答案解决了您的问题,我们鼓励您单击复选标记接受它。。。
mygraph <- function(i) {
  g <- ggplot() +
    geom_point(aes(x=data$x[data$z == i], y=data$x[data$z == i]))
  print(g)
}