我正在通过类似于以下的脚本创建动画
require(ggplot2)
require(animation)
data(diamonds)
ani.record(reset=TRUE)
for (i in 1:100){
rows <- sample(1:nrow(diamonds), i)
temp.diamond <- diamonds[rows, ]
qplot.temp <- qplot(carat, price, alpha=1/100, data=temp.diamond)
print(qplot.temp)
ani.record()
dev.off()
}
ani.replay()
但是,脚本需要很长时间才能完成,并随着我的增加而变得越来越慢.缓慢似乎是在打印显示器并关闭它(虽然切换dev.off()似乎并没有显着影响速度).
有没有办法让ani.record()“看到”正在绘制的内容而不必在屏幕上实际绘制它?还有其他方法可以提高脚本的速度吗?
最佳答案 您应该能够在列表或其他数据结构中计算和存储所有qplot,而不是在计算循环期间打印它们.然后再循环并打印它们 – 当你不在同一个循环中处理计算打印时,它应该快得多.