R 如何计算堆叠条形图中每个条形的百分比?

R 如何计算堆叠条形图中每个条形的百分比?,r,ggplot2,R,Ggplot2,我使用ggplot2生成了堆叠条形图,代码如下: library(ggplot2) g <- ggplot(data=df.m, aes(x=Type_Checklist,fill=Status)) + geom_bar(stat="bin", position="stack", size=.3) + scale_fill_hue(name="Status") + xlab("Checklists") + ylab("Quantity") + gg

我使用ggplot2生成了堆叠条形图,代码如下:

library(ggplot2)
g <- ggplot(data=df.m, aes(x=Type_Checklist,fill=Status)) +
 geom_bar(stat="bin", position="stack", size=.3) +             
 scale_fill_hue(name="Status") +    
 xlab("Checklists") + ylab("Quantity") +
 ggtitle("Status of Assessment Checklists") + 
 theme_bw() +
 theme(axis.text.x  = element_text(angle=90, vjust=0.5, size=10))+
 stat_bin(geom = "text",aes(label = paste(round((..count..)/sum(..count..)*100), "%")),vjust = 1)
 print(g)
库(ggplot2)
g%计数(类型检查表,状态)
#增加百分比
本周按状态列出的数量检查表$百分比变化(位置=(总和(n)-0.5*n))

一般来说,你不能。“正确”的解决方案,以及ggplot的设计理念是,首先在ggplot之外将数据处理为正确的格式,然后再进行绘图。了解这一理念很好。对我来说奇怪的是,第二种解决方案甚至是计算在条形图中显示百分比的位置。但到目前为止,我还没有找到任何其他的解决办法。谢谢你@joran!
#count how many checklists per status`
   qty.checklist.by.status.this.week = df.m %>% count(Type_Checklist,Status)
   # Add percentage
   qty.checklist.by.status.this.week$percentage <- (qty.checklist.by.status.this.week$n/ nrNAs * 100)
   #add column position to calculate where to place the percentage in the plot
   qty.checklist.by.status.this.week <- qty.checklist.by.status.this.week %>% group_by(Type_Checklist) %>% mutate(pos = (cumsum(n) - 0.5 * n))


g <- ggplot(data=qty.checklist.by.status.this.week, aes(x=Type_Checklist,y=n,fill=Status)) +
 geom_bar(stat="identity",position="stack", size=.3) +             
 scale_fill_hue(name="Status") +
 xlab("Checklists") + ylab("Quantity") +
 ggtitle("Status of Assessment Checklists") +
 theme_bw() +
 theme(axis.text.x  = element_text(angle=90, vjust=0.5, size=10))+
 geom_text(aes(y = pos,label = paste(round(percentage), "%")),size=5)
 print(g)