geom_area填充不同的颜色

时间:2017-07-18 12:55:06

标签: r ggplot2 fill

在处理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)))

然后我给了一个“月”变量:

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

然后是我的情节:

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

结果不会那么糟糕,如果它能理解的话,它不应该填补从本月第一次出现到下一年第二次出现的区域,但是从这个出现到下一次出现的区域。同月下个月。 (为了更好地理解:这些线应该与diagramm plot2相同(见下文),但每个新月都要填充不同的颜色。)

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

1 个答案:

答案 0 :(得分:4)

与@ 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()

Plot