首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gganimate动画时间

gganimate动画时间
EN

Stack Overflow用户
提问于 2022-01-26 19:59:55
回答 1查看 105关注 0票数 2

我想制作一个动画情节。我需要点出现和消失,但只使点的移动。

代码语言:javascript
复制
set.seed(1)
library(tidyverse)
library(gganimate)
df <- tibble(
  x = rnorm(100)
  , y = rnorm(100)
  , size = rep(c(2, 3, 4, 5), 25)
  , cl = sample(c("a", "b"), 100, T)
  , time = rep(1:10, 10) #|> lubridate::year()
)
p2 <-
  df |>
  ggplot() +
  aes(x, y, size = size, color = cl) +
  geom_point() +
  scale_size(range = c(5, 12)) +
  transition_reveal(time) +
  #enter_fade()
  #transition_manual(time) +
  shadow_mark(past = F, future = T)
animate(p2, renderer = gifski_renderer("sa.gif"))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-26 21:17:58

如果您不想同时按行或变量动画,则可以使用任何enter状态和transition_layers。它不会显示最终的过渡,但它只会使入口生动活泼。我加了enter_fade(),这样你就可以看到入口了。

代码语言:javascript
复制
p2 <-
  df |>
  ggplot() +
  aes(x, y, size = size, color = cl) +
  geom_point() +
  scale_size(range = c(5, 12)) +
  theme_bw() +
  transition_layers(layer_length = 2, 
                    transition_length = 2) +
  enter_fade() 

更新:

在您的评论中,您询问是否可以先将组a,然后是组b。我想这就是你要找的。

代码语言:javascript
复制
p3 <- ggplot() +
  geom_point(data = filter(df, cl == "a"),
             aes(x, y, color = cl, size = size)) + 
  geom_point(data = filter(df, cl == "b"),
             aes(x, y, color = cl, size = size)) +
  scale_size(range = c(5, 12)) +
  theme_bw() +
  transition_layers(layer_length = 2, 
                    transition_length = 2) +
  enter_fade()

p3
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70869519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档