R 如何计算堆叠条形图中每个条形的百分比?
我使用ggplot2生成了堆叠条形图,代码如下: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
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)