1

我想用另一个 data.frame 中的发布日期注释我的错误图,但我希望 vline 的颜色与相应的原始跟踪的颜色相匹配

# first create some dummy data
set.seed(123)
N <- 100
adf <- data.frame(version=sample(c('A','B','C'), N, replace=TRUE),
              cs=as.POSIXct('2011-06-01 00:00') + rnorm(N, 20, 70)*86400)
# lets just shift things slightly, depending on version
adf$cs <- adf$cs + (as.integer(adf$version) - 1)*5e6
adf <- adf[order(adf$cs),]
library(plyr)
adf <- ddply(adf, .(version), function(bdf) { cbind(bdf, bugno=1:nrow(bdf)) } )

# now lets plot these bug curves by version
library(ggplot2)
q <- qplot(cs, bugno, data=adf, geom='line', colour=version,
  xlab='', ylab='Number of Bugs')
print(q)

# however I'd like to annotate these plots by adding the 
# dates of "release", with the colour matching that of release 
# in the plot q, so no further annotation necessary (hopefully!)
g.res <- data.frame(version=c('A','B','C'),
                releasedate=c(as.Date('2011-06-01'), as.Date('2011-10-01'),
                              as.Date('2012-01-01')))
# works... but only in blue...
q + geom_vline(data=g.res, aes(xintercept=as.POSIXct(releasedate)), col="blue") 

我知道每天中午 ggplot2 图表的轴中断以及如何将垂直 geom_vline 获取到上课日期的 x 轴?

4

1 回答 1

1

既然我已经把所有这些工作都放在了这个问题上,我刚刚意识到了答案……颜色必须是 aes 的一部分!我对aes的工作原理还没有正确的理解,我得再看一遍书!:-)

q + geom_vline(data=g.res, aes(xintercept=as.POSIXct(releasedate), col=version) )
于 2012-06-17T10:57:00.983 回答