我目前正在创建一个包含大量数据的 gif。我想要高分辨率。
在我的旧电脑上渲染需要几个小时,根本不值得。
我的新 PC 有一个非常强大的英特尔 i9-9900k 核心处理器,它已将其加速到大约 30 分钟,但默认情况下 R 只使用 1 个核心......我有 8 个可用的,如果我能用它们来获得,那就太好了渲染在 5 分钟内完成。我将需要每周多次运行此程序,因此能够使用所有 8 个内核真是太棒了。
有没有办法利用这个?我知道你可以在一些 R 代码中使用多线程,但我无法用 ggplot2/gganimate 弄清楚。
如果可以以任何方式使用它来加快速度,我也有一个强大的图形卡。
或者,如果有任何其他您能想到的加速方法,即使这意味着更改包甚至编程语言也很棒!
最佳答案
正如 Roman 在评论中指出的那样,有一个 pull request 来促进动画 ggplots 的并行处理。
这是一个带有基准的示例,来自 this GitHub comment
library(gganimate)
anim <- ggplot(mtcars, aes(mpg, disp)) +
transition_states(gear, transition_length = 2, state_length = 1) +
enter_fade() +
exit_fade()
future::plan("sequential") ## default
t0 <- system.time(animate(anim))
print(t0)
future::plan("multiprocess", workers = 4L)
t1 <- system.time(animate(anim))
print(t1)
print(t0 / t1)
## user system elapsed
## 2.2802385 0.9121339 2.5819751
拉取请求尚未合并,但如果您现在需要它,您可以使用 devtools::install_github()
安装该特定分支。这比what has previously been pointed out容易得多
关于r - 加速 gganimate 渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57425622/