我想在条形图内按年间隔汇总数据。基于此answer,我编写了以下代码:
years <- seq(as.Date('1970/01/01'), Sys.Date(), by="year")
set.seed(111)
effect <- sample(1:100,length(years),replace=T)
data <- data.frame(year=years, effect=effect)
ggplot(data, aes(year, effect)) + geom_bar(stat="identity", aes(group=cut(year, "5 years")))
但是,只有刻度线会受影响,但数据不会按间隔求和。我可以让ggplot2在不预处理数据的情况下对数据求和,同时保持刻度线和标签不变吗?
编辑:对不起,我不清楚。我希望将刻度线和标签保持原样,即位于每个条的左边缘(现在覆盖5年)的刻度线和仅在标签中的年份。这是基于上面链接答案的外观。答案 0 :(得分:0)
做你想做的事的有点hacky方式:
ggplot(data, aes(cut(year, "5 years"), effect)) +
geom_col() +
xlab("year")
它实际上做了什么:它绘制了高度等于effect
的多个列(条),但是基于5年间隔标识符堆叠在彼此之上。换句话说,在情节上,实际上有48个条形,一种颜色但位于彼此之上。
答案 1 :(得分:0)