微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

r – 使用position_dodge时发生geom_text问题

我看到了 this的答案,但无法复制它.

我得到这样的数据:

df = data.frame(x = rep(sample(letters,4),2),y = round(runif(8,1,100),0),z = c(rep("group1",rep("group2",4)))

# I then add a 'percent' column like so:

df$perc[1:4] = df$y[1:4] / sum(df$y[1:4])
df$perc[5:8] = df$y[5:8] / sum(df$y[5:8])

# Which I then convert like so:
df$perc = paste(round(df$perc * 100,1),"%",sep="")

# The ggplot:
library(ggplot2)

ggplot(df) + 
geom_bar(aes(z,y,fill=x),position="dodge",stat="identity") + 
geom_text(aes(z,label=perc),position=position_dodge(width=1),size=4)

结果:

我无法弄清楚我做错了什么.

解决方法

只需一个小改动即可解决问题.您需要在geom_text(aes(…))调用中指定group = x.
ggplot(df) + 
geom_bar(aes(z,label=perc,group=x),size=4)

原文地址:https://www.jb51.cc/css/215074.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。