无法渲染动画

时间:2020-02-17 09:12:02

标签: r graphics permissions gganimate

我正在尝试学习如何使用R和gganimate获得漂亮的动画图形,但是遇到一些问题。当我尝试对图形进行动画处理时,R似乎编辑了一些PNG文件,但随后却无法渲染它们。这是我使用的代码示例(tidyverse,gganimate和gifski首先加载):

p <- ggplot(iris, aes(Sepal.Length, Petal.Length)) + geom_point()
p + transition_states(Species)

R运行第一行没有问题。当涉及到第二行时,控制台将打印“ rendering ----> etc.”,并倒数几秒钟。一旦结束,它会打印很多行,似乎在描述动画对象(PNG文件列表,状态列表等)。我猜这很正常。

最后,在我看来这是问题所在,R给我警告消息:

file_renderer failed to copy frames to the destination directory

当然,我没有动画。

我看到了其他与此相关的主题,说这可能是一个许可问题,但我不足以理解该怎么做。我在两台计算机上重现了该问题,一台在Ubuntu上,另一台在Windows上。

4 个答案:

答案 0 :(得分:6)

首先,安装gifski软件包并键入以下代码。我添加了另一行。请注意,+transition_states(Species)是第一行的组成部分,p

p <- ggplot(iris, aes(Sepal.Length, Petal.Length)) + 
geom_point()+
transition_states(Species)

animate(p, renderer = gifski_renderer())

答案 1 :(得分:1)

我真的不明白为什么,但是问题已经解决了。在两台计算机和两个OS上,现在都可以使用相同的代码。我没有做任何更改,所以无法说出原因是什么,这很奇怪,因为两台机器没有任何共同之处。但是,他们两天前都无法创建动画,而现在他们都可以。

结论:如果有人遇到同样的问题,也许稍后再重试一次?

结论2:也许我只是愚蠢,但是我可以用一种解释来知道为什么:)

答案 2 :(得分:0)

从目录中删除任何以前创建的图像对我来说解决了这个问题。您可以手动执行操作(选择这些图像,然后将其删除),或者在R

中使用file.remove()

答案 3 :(得分:0)

您没有对程序保存动画对象的位置进行读取,写入和执行(完全访问)权限。因此,它无法渲染。 @Amanyiraho建议安装gifski软件包,以便可以使用gifski_renderer()。重新启动或更新后,您可能已拥有对该位置的完全访问权限,并且程序无需任何修改即可开始运行。