【问题标题】:Cumulative sum across time时间累计
【发布时间】:2018-06-22 13:33:24
【问题描述】:

我有一个数据集,我想通过时间来总结。我在三种植物(番茄、胡椒、南瓜)上有十个日期和花数。我想创建一个 ggplot (barplot) 图,将花的数量相加,并将它们显示为按植物着色的堆积条形图。 Y 轴应该是鲜花的累积总和,X 轴应该是时间。当我使用 cum_sum 时,输出对我来说没有意义。任何帮助都会很棒!谢谢。

dataset here

    df.sum<- df.sub%>% group_by(Date) %>% mutate(cumsum_covered = cumsum(Tomato)) 

ggplot (df.sum, aes (x=Date, y=cumsum_covered)) + geom_bar(stat="identity")

【问题讨论】:

    标签: r date ggplot2 bar-chart cumsum


    【解决方案1】:

    您按日期分组,因此 cumsum 将始终是单个值。我们想得到按日期排序的每个水果的 cumsum

    df.sum <- df.sub %>% 
      # This gives us Date, fruit, amount
      gather(fruit, amount, Tomato, Pepper, Squash) %>%
      # We group by the fruit to get only the cumsums for the correct fruit and order by date
      group_by(fruit) %>% 
      arrange(Date) %>%
      mutate(cumsum_covered = cumsum(amount))
    
    ggplot(df.sum, aes(Date, cumsum_covered, fill=fruit)) + 
      geom_col(position="stack")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-31
      相关资源
      最近更新 更多