我正在尝试生成一个geom_bar()
图表的计数标签。数据格式为Factor w/ 2 levels "0","1"
现在我有以下代码但是找不到'count'
的错误。
以下是我最近尝试的代码:
ggplot(mb,
aes(x = Intervention_grp,
y = ..count..,)) +
geom_bar(aes(fill = Intervention_grp),
alpha = (1 - 0.618)) +
geom_text(aes(label=Intervention_grp),
vjust = -0.2)
Error in eval(expr, envir, enclos) : object 'count' not found
我在R Graphics Cookbook中看到以下代码:
ggplot(cabbage_exp, aes(x=ineraction(Date, Cultivar), y=Weight)) +
geom_bar(stat="identity") +
geom_text(aes(label=Weight), vjust = -0.2)
所以我尝试了类似的格式,只是没有使用交互
ggplot(mb,
aes(x = Intervention_grp,
y = Intervention_grp)) +
geom_bar(stat = "identity") +
geom_text(aes(label=sum(as.numeric(Intervention_grp))),
vjust = -0.2)
我的结果是两个条形图用于组0,一个用于组1,标记为1519,数据集中没有那么多观察结果。
如何使用计数正确获取标签?
当我执行以下操作时:
ggplot(mb,
aes(x = Intervention_grp,
y = ..count..,)) +
geom_bar()
我得到一个合适的条形图,在y轴上有正确的计数,我只想将它们放在条形图上。
谢谢,
答案 0 :(得分:1)
您可以先添加Count
列。这是plyr
包:
mb <- merge(mb, ddply(mb, .(Intervention_grp), summarise, Count=length(Intervention_grp), by = 'Intervention_grp')
然后你可以使用
geom_text(aes(label = Count, y = Count), vjust = -0.25)
iris2 <- iris[sample(seq_len(150), 50), ]
iris2 <- merge(iris2, ddply(iris2, .(Species), summarise, Count = length(Species)), by = 'Species')
ggplot(iris2, aes(x = Species)) + geom_bar() + geom_text(aes(label = Count, y = Count), vjust = -0.25)