0

如何在 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)
4

1 回答 1

1

您可以使用参数添加具有不同数据源的另一个图层data。这里的关键是图层以不同的方式映射到 y 轴 -geom_bar()由计数geom_text()映射,而由yin 的值映射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

在此处输入图像描述

于 2013-08-19T13:35:25.840 回答