R 如何在不创建摘要数据框的情况下在ggplot2中标记堆叠条形图?

R 如何在不创建摘要数据框的情况下在ggplot2中标记堆叠条形图?,r,label,ggplot2,bar-chart,R,Label,Ggplot2,Bar Chart,下面的代码提供了一个奇妙的堆叠条形图 cls.grp <- gl(n=4,k=20,labels=c("group a","group b","group c", "group d")) ser <- sample(x=c("neg","pos"),size=80,replace=TRUE, prob=c(30,70)) syrclia <- data.frame(cls.grp,ser) ggplot(syrclia, aes(cls.grp, fill=ser))+ geo

下面的代码提供了一个奇妙的堆叠条形图

cls.grp <- gl(n=4,k=20,labels=c("group a","group b","group c", "group d"))
ser <- sample(x=c("neg","pos"),size=80,replace=TRUE, prob=c(30,70))
syrclia <- data.frame(cls.grp,ser)
ggplot(syrclia, aes(cls.grp, fill=ser))+ geom_bar()

cls.grp
geom\u bar
默认使用
stat\u bin
。因此,您应该使用
stat\u bin
来绘制数字,告诉它使用
geom\u text
并使用新生成的
.count..
作为标签

    cls.grp <- gl(n=4,k=20,labels=c("group a","group b","group c", "group d"))
    ser <- sample(x=c("neg","pos"),size=80,replace=TRUE, prob=c(30,70))
    syrclia <- data.frame(cls.grp,ser)
    library(ggplot2)
    total <- ddply(syrclia, .(cls.grp), function(x) nrow(x))[, 2]
    ggplot(syrclia, aes(cls.grp, fill=ser))+ geom_bar() + 
      stat_bin(geom = "text", 
               aes(label = paste(
                   ..count../get("total", envir = .GlobalEnv)*100,"%")))

cls.grp您能否提供一个小示例,说明您希望将哪些标签放置在条上,以及您希望将哪些标签放置在哪里?我有一点复杂。在我的真实数据集中,每列并没有20个。它们是一个可变的数字。我需要计数来计算每列的计数并添加“%”符号。