我正在尝试学习如何使用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上。
答案 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()
。重新启动或更新后,您可能已拥有对该位置的完全访问权限,并且程序无需任何修改即可开始运行。