Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R GG不显示所有帧的动画_R_Animated Gif_Gganimate - Fatal编程技术网

R GG不显示所有帧的动画

R GG不显示所有帧的动画,r,animated-gif,gganimate,R,Animated Gif,Gganimate,我想制作一个包含138个州的简单gif。我不需要在每个状态之间进行任何奇特的转换,但我确实需要每个状态都出现在我的gif中。目前,正在缩短我的gif,没有显示最后30个州 例子 我如何才能使这项工作正常,使每个所需状态都显示,例如0.25秒?看起来您被帧采样咬到了。从?设置动画: 长度和帧率取决于渲染时间,可以是nframes、fps和duration的任意两种组合 渲染以离散时间单位进行。这意味着任何 动画中的事件四舍五入到最近的帧(例如。 输入将始终使用整数帧)。这意味着 仅渲染少数帧时,

我想制作一个包含138个州的简单gif。我不需要在每个状态之间进行任何奇特的转换,但我确实需要每个状态都出现在我的gif中。目前,正在缩短我的gif,没有显示最后30个州

例子


我如何才能使这项工作正常,使每个所需状态都显示,例如0.25秒?

看起来您被帧采样咬到了。从
?设置动画

长度和帧率取决于渲染时间,可以是nframes、fps和duration的任意两种组合

渲染以离散时间单位进行。这意味着任何 动画中的事件四舍五入到最近的帧(例如。 输入将始终使用整数帧)。这意味着 仅渲染少数帧时,舍入瑕疵是可能的

为了避免这种情况,可以增加detail参数。细节会变得更详细 乘以nframes,得到的帧数将 已计算,但仅渲染等间距的N帧

确保打印每个状态的简单解决方案是设置
detail
>1。通常
detail=fps
将保证使用每个帧

制作动画(
plot=p,
nframes=长度(唯一(df$DT)),
细节=8,
fps=8,
结束暂停=8
)

正如《过渡手册》中所述,
正是您所需要的:

此转换允许您将数据中的变量映射到动画中的特定帧。不会对数据进行二次加密,动画中的帧数将由帧变量中的级别数决定

请注意我在下面使用
transition\u manual()
labs()
所做的操作

库(tidyverse)
库(gganimate)

df你是如何发布动画GIF的?当你尝试时,在你发布之前它看起来像是一个静止的帧,还是一直以动画的形式出现?不,我有点挣扎:)我一直粘贴
png
,而不是
gif
!不能从rstudio查看器复制和粘贴,否则只能复制一帧。您需要在本地保存为
gif
(在新窗口中打开,在浏览器中打开gif,然后
ctrl+s
),然后上载文件。它看起来很生动。绝对比增加细节更优雅!很好,谢谢!(虽然我会选择
labs(title='ScrapeDT:{current_frame}')
)oml,谢谢@Ben!我做了一个完整的项目,不知道lol的语法。编辑我的答案,我肯定会使用
current\u frame
more;)。
df <- lapply(1:138, function(t){
  data.frame(
    DT = as.POSIXct("2019-01-01 12:00:00", tz = "UTC") + t*24*60*60,
    x = seq(-3, 3, length.out = 100),
    y = t * seq(-3, 3, length.out = 100)
  )
})
df <- do.call(rbind, df)
range(df$DT)  # "2019-01-02 12:00:00 UTC" "2019-05-19 12:00:00 UTC"

p <- ggplot(data = df, mapping = aes(x = x, y = y)) + 
  geom_point()+ 
  transition_states(states = DT, transition_length = 0, state_length = 1)+
  labs(title = 'ScrapeDT: {previous_state}')
p
animate(
  plot = p, 
  nframes = length(unique(df$DT)), 
  fps = 8, 
  end_pause = 8
)