使用gganimate时小提琴图的定位

时间:2018-07-08 11:29:20

标签: r ggplot2 gganimate

我正在使用ggplot2 3.0.0和gganimate 0.1.1。 这是MWE:

library(ggplot2)
library(gganimate)

df <- data.frame(year = rep(2000:2010, each = 50),
                 value = rnorm(550))

ggplot(df, aes(x = 0, y = value, frame = factor(year))) +
  geom_violin() -> p
gganimate(p)

这会创建一个动画,每个帧都像这样

current output

我希望每个帧都这样占据整个情节

desired output

我该如何调整代码以获得此结果?

编辑

This是我想产生的,这次使用实际数据。我是通过手动将动画的每一帧缝合在一起来实现的,但是这种方式对于更复杂的情节是不可持续的,因此我希望改用gganimate。

1 个答案:

答案 0 :(得分:1)

1

只需使用transition_states()transition_time()

代码

ggplot(df, aes(x = 0, y = value)) +
    geom_violin() +
    transition_states(year, transition_length = 3, state_length = 1) +
    labs(title = "{closest_state}")

数据

set.seed(1701)
df <- data.frame(year = c(rep(2000:2010, each = 50)),
                 value = rnorm(550))