渲染动画失败
Fail to render an animation
我正在尝试学习如何使用 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.
我真的不明白为什么,但是问题已经自行解决了。在两台计算机上,以及两台 OS,现在可以使用相同的代码。我没有改变任何东西,所以不知道是什么原因,这很奇怪,因为两台机器没有任何共同点。然而,两天前他们都无法制作动画,现在他们都可以了。
结论:如果有人遇到同样的问题,也许稍后重试?
结论2:也许我只是愚蠢,但我可以用一个解释来知道为什么:)
首先,安装 gifski
包并输入下面的代码。我添加了另一行。注意 +transition_states(Species)
是如何成为 p
的第一行的一部分
p <- ggplot(iris, aes(Sepal.Length, Petal.Length)) +
geom_point()+
transition_states(Species)
animate(p, renderer = gifski_renderer())
从目录中删除任何以前创建的图像解决了我的问题。您可以手动执行此操作(select 这些图像,然后删除它们)或使用 R
中的 file.remove()
您没有对您的程序保存动画对象的位置进行读取、写入和执行(完全访问)。因此它无法呈现。 @Amanyiraho 建议安装 gifski
包以便可以使用 gifski_renderer()
。重新启动或更新后,您可能已经获得了对该位置的完全访问权限,并且您的程序无需任何修改即可开始工作。
我正在尝试学习如何使用 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.
我真的不明白为什么,但是问题已经自行解决了。在两台计算机上,以及两台 OS,现在可以使用相同的代码。我没有改变任何东西,所以不知道是什么原因,这很奇怪,因为两台机器没有任何共同点。然而,两天前他们都无法制作动画,现在他们都可以了。
结论:如果有人遇到同样的问题,也许稍后重试?
结论2:也许我只是愚蠢,但我可以用一个解释来知道为什么:)
首先,安装 gifski
包并输入下面的代码。我添加了另一行。注意 +transition_states(Species)
是如何成为 p
p <- ggplot(iris, aes(Sepal.Length, Petal.Length)) +
geom_point()+
transition_states(Species)
animate(p, renderer = gifski_renderer())
从目录中删除任何以前创建的图像解决了我的问题。您可以手动执行此操作(select 这些图像,然后删除它们)或使用 R
中的file.remove()
您没有对您的程序保存动画对象的位置进行读取、写入和执行(完全访问)。因此它无法呈现。 @Amanyiraho 建议安装 gifski
包以便可以使用 gifski_renderer()
。重新启动或更新后,您可能已经获得了对该位置的完全访问权限,并且您的程序无需任何修改即可开始工作。