次のような 100% 積み上げ棒グラフに適切な値を積み上げてラベルを付けるにはどうすればよいでしょうか?
# dummy data
dat <- data.frame(
Banner=c(rep("Company A",5),rep("Company B",5)),
Response=factor(c(1:5,1:5)),
Proportion=c(10,20,40,20,10,10,30,40,10,10))
dat <- rbind(dat,dat,dat)
dat$Time <- c(rep("Time 1",10),rep("Time 2",10),rep("Time 3",10))
これをラベルなしで問題なくプロットできます:
ggplot(dat, aes(Banner, Proportion, fill=Response)) +
geom_bar(position="stack", stat="identity") +
facet_grid(~Time)
ただし、各要素に、できれば要素の中央にラベルを付ける必要があります。ddply を使用した関数を見たのを覚えています (ラムナスの答えだったと思います) が、私の人生ではそれを見つけることができません。
何かのようなもの:
dat <- ddply(dat, .(Banner, Time), function(x) {
x$Pos <- cumsum(x$Proportion) # at top of element, want middle!
x})