经过一段时间的搜索,我没有找到解决我的问题的示例:
如何使用geom_text()标记geom_bar(position ='fill')?
mydf = data.frame(
'sample' = sample(x = LETTERS[1:3], size = 111,replace = T),
'category' = sample(x = 1:11, size = 111,replace = T)
)
mydf %>%
group_by(sample) %>%
ggplot( aes(fill=sample, x=category)) +
geom_bar( position="fill" )
# Does not work: + geom_text(position='fill', aes(label = ..y..))
预期结果:如示例中所示,在小节的中间标记%(除了它显示计数,与我的情况不同): 来自https://ggplot2.tidyverse.org/reference/geom_text.html
我想真正的问题是,如果我使用geom_bar(position ='fill'),什么是“ y”和“ label”
我对ggplot混合计算(每个类别的比例)和可视化感到困惑。
谢谢!
答案 0 :(得分:0)
创建一个新的数据框ggp
,以存储要绘制的数据
ggp <- mydf %>% count(sample,category)
使用数据帧中的数据绘制geom_bar
-x=category, y=count(n), fill=sample
ggplot(ggp,aes(category,n,fill=sample)) +
geom_bar(stat="identity",position = "fill") +
geom_text(aes(label=n),position = position_fill(vjust = 0.5))