【问题标题】:Why are multiple points showing in this gganimate plot?为什么在这个 gganimate 图中显示多个点?
【发布时间】:2020-07-10 19:47:45
【问题描述】:

所以我正在尝试使用 gganimate 绘制这些数据:

YEAR WEEK COUNTRY CODE    MARKET          ARRIVALS   DATE        pct.chg
2020    1   Usa   US     CONTAINER SHIPS    347    2020-01-08    7.7639752
2020    2   Usa   US     CONTAINER SHIPS    395    2020-01-15   -2.2277228
2020    3   Usa   US     CONTAINER SHIPS    353    2020-01-22   -15.1442308
2020    4   Usa   US     CONTAINER SHIPS    359    2020-01-29   -11.3580247
2020    5   Usa   US     CONTAINER SHIPS    385    2020-02-05    0.2604167

数据位于名为 changesimp 的对象中。正如您所料,我想绘制一段时间内的到达图。所以这是我用来执行此操作的代码:

library(tidyverse)
library(gganimate)    
changesimp %>% 
      filter(COUNTRY == "Usa") %>% 
      filter(YEAR == "2020") %>% 
      ggplot(aes(DATE, pct.chg)) +
      geom_line() +
      geom_point()+
      labs(y="Year-over-year % change",
           x="",
           title="Percent change in port calls")+
      theme_clean()+
      transition_reveal(DATE)

当我刚刚使用 geom_line 时,这很好用。但是当我添加 geom_point 部分时,事情变得有点奇怪,它给了我这个输出(这只是动画中的一帧):

我想要得到的是这样的东西,found here

每周只有一个 pct.chg 值,我已经检查过了。所以我不确定为什么它会像这样绘制多个点。有什么想法吗?谢谢。

【问题讨论】:

    标签: r ggplot2 gganimate


    【解决方案1】:

    当我使用虚拟数据时

    df <- data.frame(
      COUNTRY = c(rep("Usa",26)),
      YEAR = c(rep("2020",26)),
      WEEK = c(1:26),
      pct.chg = c(rnorm(26,0,15))
    )
    
    changesimp <- df %>%  mutate(DATE=(7*WEEK+as.Date('2020-01-01', format="%Y-%m-%d")))
    

    您的程序运行良好并生成以下输出:

    【讨论】:

      猜你喜欢
      • 2013-07-12
      • 2011-01-22
      • 1970-01-01
      • 2018-04-19
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多