performance - 循环 ggplots 以创建动画 : increasing speed

标签 performance r animation ggplot2

我正在通过类似于以下的脚本创建动画

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()

但是,脚本需要很长时间才能完成,并且越来越慢,如 i增加。缓慢似乎是在打印显示并将其关闭(尽管切换 dev.off() 似乎不会显着影响速度)。
ani.record()有办法吗? “查看”正在绘制的内容而不必实际绘制在屏幕上?还有其他方法可以提高脚本的速度吗?

最佳答案

您应该能够计算所有 qplots 并将其存储在列表或其他数据结构中,而不是在计算循环期间打印它们。然后再次循环并全部打印 - 当您不在同一个循环中处理计算 + 打印时,它应该快得多。

关于performance - 循环 ggplots 以创建动画 : increasing speed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17377019/

相关文章:

R:在数据框中将分数转换为小数

javascript - 如何隐藏SVG中超出其下指定SVG的部分?

javascript - JS执行时间

performance - kafka客户端可以扮演消费者和生产者的多重角色吗

sql - 我怎样才能使这个 Ruby on Rails 页面更有效率?

r - 如何将 bquote 与 ggplot2 geom_label 结合使用?

r - 如何将大量 igraph 组合成一个 igraph - R

css - Angular 4流畅的动画

animation - 无损视频压缩格式

performance - 分析调用其他函数的函数的性能