这可能是一个简单的问题。 我有大量临床数据称为d。
head(d[,c("catCRP","ageCat")])
catCRP ageCat
1 <4 (50,66]
2 >4 (40,50]
3 >4 (30,40]
4 <4 (50,66]
5 >4 (30,40]
6 >4 (30,40]
我正在用ggplot2绘图:
ggplot(d,aes(x=ageCat,fill=catCRP))+geom_bar(position="fill")
在这种情况下,ggplot会绘制每个类别中的百分比。
是否可以将百分比数字和实际数量添加到图表中?
我是初学者,我查看了所有文档,但我没有找到答案。
答案 0 :(得分:0)
library(ggplot2)
library(dplyr)
d <- data.frame(ageCat = rep(1:5, each=20)
,catCRP = rep(1:5,20))
p <- d %>% group_by(ageCat, catCRP) %>% summarise(n = n()) %>%
mutate(p = n/sum(n))
p1 <- ggplot(p,aes(x=ageCat,y=p, fill=catCRP))+geom_bar(stat = "identity", position="fill") + theme_bw()
p1 + geom_text(aes(label = paste0(n," (",p*100,"%)")), size = 3, hjust = 0.5, vjust = 3, position = "stack")