使用 gganimate 并出现各种错误
Using gganimate and getting all kind of errors
我正在尝试使用 gganimate
:
创建动画
library(ggplot2)
library(ggthemes)
library(gifski)
library(gganimate)
load("covid-19-es.Rda")
casos <- ggplot(data,aes(x=Fecha))+geom_point(aes(y=casos,color="Casos"))+geom_point(aes(y=salidas,color="Salidas"))+theme_tufte()+transition_states(Fecha,transition_length=2,state_length=1)+labs(title='Day: {frame_time}')
animate(casos, duration = 5, fps = 20, width =800, height = 600, renderer=gifski_renderer())
anim_save("casos.png")
使用的数据文件是here.
最初我使用 geom_lines 而不是 geom_point,但是这产生了一个错误:
Error in seq.default(range[1], range[2], length.out = nframes) :
'from' must be a finite number
和
Error in transform_path(all_frames, next_state, ease, params$transition_length[i], :
transformr is required to tween paths and lines
要么不喜欢台词,要么不喜欢台词。切换到点,并按照 gganimate 问题中的建议创建文件。但是,这会产生不同类型的错误:
Error: Provided file does not exist
我真的想不通,因为我根本没有提供任何文件。无论如何尝试保存会产生
Error: The animation object does not specify a save_animation method
所以我真的不知道我是不是做错了什么,使用了不推荐使用的版本(或包)还是什么。
使用的版本
- R 3.6
- ggplot 2_3.3.0
- gganimate 1.0.5
- gifski 0.8.6
问题似乎与 {frame_time}
的使用有关。
如果您正在呼叫 transition_states
,请使用 {closest_state}
进行状态跟踪。或者,调用 transition_time
并使用 {frame_time}
.
这对我有用,使用 transition_states
和 {closest_state}
:
library(ggplot2)
library(gifski)
library(gganimate)
load("covid-19-es.Rda")
my_plot <- ggplot(data,aes(x = Fecha)) +
geom_point(aes( y =casos, color = "Casos")) +
geom_point(aes(y = salidas, color = "Salidas")) +
transition_states(Fecha, transition_length = 2, state_length = 1) +
labs(title = 'Day: {closest_state}')
animate(
plot = my_plot,
render = gifski_renderer(),
height = 600,
width = 800,
duration = 5,
fps = 20)
anim_save('my_gif.gif')
或者(这更平滑一些):
my_plot <- ggplot(data,aes(x = Fecha)) +
geom_point(aes( y =casos, color = "Casos")) +
geom_point(aes(y = salidas, color = "Salidas")) +
transition_time(Fecha) +
labs(title = 'Day: {frame_time}')
- 我删除了
theme
调用,因为它不相关
- 我已经保存为 gif 而不是 png
- 我使用的包版本如下:
> packageVersion('ggplot2')
[1] ‘3.3.0’
> packageVersion('gifski')
[1] ‘0.8.6’
> packageVersion('gganimate')
[1] ‘1.0.5’
- 我正在使用 R-3.6.3。
我正在尝试使用 gganimate
:
library(ggplot2)
library(ggthemes)
library(gifski)
library(gganimate)
load("covid-19-es.Rda")
casos <- ggplot(data,aes(x=Fecha))+geom_point(aes(y=casos,color="Casos"))+geom_point(aes(y=salidas,color="Salidas"))+theme_tufte()+transition_states(Fecha,transition_length=2,state_length=1)+labs(title='Day: {frame_time}')
animate(casos, duration = 5, fps = 20, width =800, height = 600, renderer=gifski_renderer())
anim_save("casos.png")
使用的数据文件是here.
最初我使用 geom_lines 而不是 geom_point,但是这产生了一个错误:
Error in seq.default(range[1], range[2], length.out = nframes) :
'from' must be a finite number
和
Error in transform_path(all_frames, next_state, ease, params$transition_length[i], :
transformr is required to tween paths and lines
要么不喜欢台词,要么不喜欢台词。切换到点,并按照 gganimate 问题中的建议创建文件。但是,这会产生不同类型的错误:
Error: Provided file does not exist
我真的想不通,因为我根本没有提供任何文件。无论如何尝试保存会产生
Error: The animation object does not specify a save_animation method
所以我真的不知道我是不是做错了什么,使用了不推荐使用的版本(或包)还是什么。
使用的版本
- R 3.6
- ggplot 2_3.3.0
- gganimate 1.0.5
- gifski 0.8.6
问题似乎与 {frame_time}
的使用有关。
如果您正在呼叫 transition_states
,请使用 {closest_state}
进行状态跟踪。或者,调用 transition_time
并使用 {frame_time}
.
这对我有用,使用 transition_states
和 {closest_state}
:
library(ggplot2)
library(gifski)
library(gganimate)
load("covid-19-es.Rda")
my_plot <- ggplot(data,aes(x = Fecha)) +
geom_point(aes( y =casos, color = "Casos")) +
geom_point(aes(y = salidas, color = "Salidas")) +
transition_states(Fecha, transition_length = 2, state_length = 1) +
labs(title = 'Day: {closest_state}')
animate(
plot = my_plot,
render = gifski_renderer(),
height = 600,
width = 800,
duration = 5,
fps = 20)
anim_save('my_gif.gif')
或者(这更平滑一些):
my_plot <- ggplot(data,aes(x = Fecha)) +
geom_point(aes( y =casos, color = "Casos")) +
geom_point(aes(y = salidas, color = "Salidas")) +
transition_time(Fecha) +
labs(title = 'Day: {frame_time}')
- 我删除了
theme
调用,因为它不相关 - 我已经保存为 gif 而不是 png
- 我使用的包版本如下:
> packageVersion('ggplot2')
[1] ‘3.3.0’
> packageVersion('gifski')
[1] ‘0.8.6’
> packageVersion('gganimate')
[1] ‘1.0.5’
- 我正在使用 R-3.6.3。