如何在geom_bar()图上按单独的向量添加标签?
a<-as.POSIXlt("2013-07-01 00:00:00",origin = "1960-01-01",tz="GMT")
b<-as.POSIXlt("2013-07-08 00:00:00",origin = "1960-01-01",tz="GMT")
week1<-sample(seq(as.numeric(a),by=60*60,length.out=200),200,T)
week2<-sample(seq(as.numeric(b),by=60*60,length.out=200),200,T)
times<-c(week1,week2)
class(times)<-c("POSIXt","POSIXct")
times<-as.POSIXlt(times,origin = "1960-01-01",tz="GMT")
key<-sample(LETTERS[1:3],200,T)
df<-data.frame(times=times,order=factor(rep(1:2,each=100)), key=key)
p<-ggplot(df, aes(x=key, y=..count.. ,fill=key ) )
p<-p + geom_bar()
p<-p + facet_wrap( ~ order,ncol=2)
p<-p + coord_flip()
p
我想添加每个键值的编号,由df1 $ y:
表示df1<-ddply(df, .(key,order), summarize, y=length(key))
p<-p + geom_text(aes(label=df$1y), vjust=0)
答案 0 :(得分:1)
您可以使用data
参数添加具有不同数据源的其他图层。这里的关键是层以不同方式映射到y轴 - geom_bar()
由计数映射,而geom_text()
由y
中的df1
值映射(我假设 - 它可能是其他一些价值,但这似乎是合乎逻辑的)。这意味着您需要在每个y =
调用中指定geom_
:
p <- ggplot(df, aes(x = key, fill = key))
p1 <- p + geom_bar(aes(y = ..count..)) + facet_wrap( ~ order, ncol = 2) +
coord_flip()
p2 <- p1 + geom_text(data = df1, aes(y = y + 5, label=y), vjust=0)
p2