R:“;无效辩论`-延迟';有动画和情节
我正试图从一个大数据集(从一个循环的科学实验中)用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(我想这样做,因为我最终想用它来绘制更复杂的图形),
动画
库,只需:
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)
}