在 gganimate 中标记日期

Labeling Dates In gganimate

假设我们有以下数据框:

> df
  date number
1   9/1      1
2   9/2      2
3   9/3      3
4   9/4      4
5   9/5      5

,其中 'date' 列具有“month/date”格式。

根据这些数据,我想制作一个动画,在 x 轴的 'date' 列中具有相同的“month/date”格式。

但是,R 会抛出一条错误消息,指出 'date' 列必须是有限数。所以我删除了 'date' 列中的 '/' 现在它可以工作了(见附件 image) 使用以下代码:

df <- data.frame("date" = c(91, 92, 93, 94, 95), "number" = c(1,2,3,4,5))

p <- ggplot(df, aes(x = date, y = number, group =1)) +
  geom_line() +
  geom_point() +
  transition_reveal(date)
p

但是,如何在动画的 x 轴上标记 'date' 列,使其保持“month/date”格式?

ggplot 可以处理日期,但它们必须是日期类型。否则,ggplot 无法正确显示它们。据我所知,没有年份没有日期的方法。但是,如果您的数据少于一年,ggplot 将不会显示年份,而只会显示月份和日期。这是一个例子:

    library(ggplot2)
    library(gganimate)
    library(gifski)

    df <- data.frame("date" = c(91, 92, 93, 94, 95), "number" = c(1,2,3,4,5))

    df$date <- as.Date(c("2019-09-01", "2019-09-02", "2019-09-03", "2019-09-04", "2019-09-05"))

    p <- ggplot(df, aes(x = date, y = number, group =1)) +
      geom_line() +
      geom_point() +
      transition_reveal(date)
    p