str(data)
'data.frame': 2425838 obs. of 3 variables:
$ ID : int 10281466 10315034 11392679 12297599 20009616 110540620 114803146 115398695 120231006 130626270 ...
$ factor1: chr "<U+0630><U+0643><U+0631>""| __truncated__ "<U+0630><U+0643><U+0631>""| __truncated__ "<U+0630><U+0643><U+0631>""| __truncated__ "<U+0630><U+0643><U+0631>""| __truncated__ ...
$ months : Date, format: "2015-07-01" "2015-07-01" "2015-07-01" ...
我的问题是我有很多重复的日期值。如何聚合它们,得到ID_count
,同时保留因子分布。
ggplot(data) + geom_area(aes(x = as.Date(factor(months)), y=ID, stat='bin',
fill = factor1, color=factor1), position = 'stack') +
scale_x_date(breaks = "1 month", labels=date_format("%b,%y")) +
theme(axis.text.x=element_text(angle=-90, vjust = 0))
x = as.Date(factor(months)
:尝试首先在x轴上放置数月,factor(months)
有效,但需要使用scale_x_date
进一步调整,这就是i
被包裹的原因as.Date()
失败了。
答案 0 :(得分:1)
这就是你想要的吗?
d <- data.frame(day=as.Date('2015-09-16')+sample(-100:100, 500, r=T),
id=sample(1:30, 500, r=T),
factor=sample(c('a','b'), 500, r=T))
d <- aggregate(id ~ format(day, '%Y-%m') + factor, data=d, FUN=length)
colnames(d) <- c('month','factor','id_count')
ggplot(d, aes(x=month,y=id_count,group=factor,fill=factor))+ geom_area(position="stack")