R 按日期计算值的数量
我在下面有一个数据框,我的目标是创建一个趋势线图,它将按经销商显示每个日期的计数。我正在努力找到如何计算每天的数量,以便把y轴R 按日期计算值的数量,r,ggplot2,R,Ggplot2,我在下面有一个数据框,我的目标是创建一个趋势线图,它将按经销商显示每个日期的计数。我正在努力找到如何计算每天的数量,以便把y轴 Deal<-c("WEB","ASD","FGH","WEB","ASD","FGH","WEB","ASD","FGH") Date<-c("2020-01-03","2020-01-03","2020-01-04","2020-01-05","2020-01-05","2020-01-06","2020-01-07","2020-01-07","
Deal<-c("WEB","ASD","FGH","WEB","ASD","FGH","WEB","ASD","FGH")
Date<-c("2020-01-03","2020-01-03","2020-01-04","2020-01-05","2020-01-05","2020-01-06","2020-01-07","2020-01-07","2020-01-07")
DD<-data.frame(Deal,Date)
# Multiple line plot
library(ggplot2)
ggplot(DD, aes(x =Date , y = )) +
geom_line(aes(color = Deal), size = 1) +
theme_minimal()
Deal像这样的东西
DD %>%
mutate(Date = as_date(Date)) %>%
group_by(Date) %>%
summarise(cnt = n_distinct(Deal)) %>%
ggplot(., aes(x = Date , y = cnt)) + geom_line()+
geom_smooth(method = "lm")+
theme_minimal()
您可以使用geom\u line
中的stat\u count
来计算每天的数字。这将跳过计数为零的天数,因此您可能希望通过使用dplyr::count
然后填充间隙,或者使用geom_bar
而不是geom_line
来明确这些天数
库(tidyverse)
DD%
变异(日期=as.Date(日期))
#多线图
ggplot(DD,aes(x=日期))+
几何线(stat=“count”,aes(颜色=交易),尺寸=1)+
主题_极小值()
由(v0.3.0)于2020-01-27创建,或者,您可以按经销商和日期分组,并直接按日期获取每个经销商的计数。这里我使用了dplyr
包中的count
(包含在tidyverse
中)。我还添加了.drop=FALSE
,以便对某些日期计数为0的经销商进行计数:
库(tidyverse)
图书馆(lubridate)
DD%>%分组依据(交易、日期、.drop=FALSE)%>%
计数()
#一个tibble:15x3
#分组:交易,日期[15]
交易日期
1 ASD 2020-01-03 1
2 ASD 2020-01-04 0
3 ASD 2020-01-05 1
4 ASD 2020-01-06 0
5 ASD 2020-01-07 1
6 FGH 2020-01-03 0
7 FGH 2020-01-04 1
8 FGH 2020-01-05 0
9 FGH 2020-01-06 1
10 FGH 2020-01-07 1
11 WEB 2020-01-03 1
12 WEB 2020-01-04 0
13 WEB 2020-01-05 1
14 WEB 2020-01-06 0
15 WEB 2020-01-07 1
然后,您可以通过执行以下操作将此计数传递到ggplot2
:
库(tidyverse)
图书馆(lubridate)
DD%>%分组依据(交易、日期、.drop=FALSE)%>%
计数()%>%
ggplot(aes(x=ymd(日期),y=n,颜色=Deal,组=Deal))+
几何点()+
geom_线()
注意:在这里,我使用ymd
fromlubridate
包中的函数将日期转换为绘图上的日期格式