geom_area 填充不同的颜色

geom_area fill with different colors

我在使用 geom_area 绘制绘图时遇到了一些问题。我有一个包含日期和计数的数据框,如下所示:

dates <- c("02/01/00", "02/04/00", "02/07/00", "02/10/00", "02/01/01", "02/04/01", "02/07/01", "02/10/01")
dat <- data.frame(date=as.Date(dates, "%d/%m/%y"), count=(sample(1:8)))

然后我添加了一个 "month" 变量:

dat["month"] <- month(dat$date)

然后是我的剧情:

plot <- ggplot(data=dat, aes(x=date, y=count, group=month, fill=month)) + geom_area()

结果不会太糟糕,如果它能理解,它不应该填充从本月第一次出现到下一年第二次出现的区域,而是从这次出现到下一次同年的下个月。 (为了更好地理解:线条应该与图表 plot2 中的线条相同(见下文),但每个新月份用不同的颜色填充)。

plot2 <- ggplot(data=dat, aes(x=date, y=count)) + geom_line()

与@user20659 的评论在同一行但处理数据:

dat["month"] <- as.factor(month(dat$date))
dat["df"] <- as.factor(dat$date)

dat2 <-data.frame(date=dat$date[-1],count=dat$count[-1], month=dat$month[-8],df=dat$df[-8])

dat3 <- rbind(dat,dat2)

ggplot(data=dat3, aes(x=date, ymax=count, ymin=0, group=df, fill=month)) + geom_ribbon()