关于r:如何使用ggplot geom

您所在的位置:网站首页 ggplot百分比堆积图 关于r:如何使用ggplot geom

关于r:如何使用ggplot geom

2023-09-02 01:03| 来源: 网络整理| 查看: 265

本问题已经有最佳答案,请猛点这里访问。

我正在尝试在堆积的条形图中添加百分比标签。我可以添加什么到geom_bar中以显示堆叠条形图中的百分比标签?

这是我的数据:

1234myresults=data.frame(     manipulation=rep(c(-20,-10,0,10,20,-20,-10,0,10,20,-20,-10,0,10,20)),     variable=rep(c("a","a","a","a","a","f","f","f","f","f","l","l","l","l","l")),     value=c(73,83,76,75,78,261,301,344,451,599,866,816,780,674,523))

这是我的条形图,没有百分比标签。

我对此一无所知。我在" gglot堆积条形百分比标签"上进行了搜索,发现可以使用" geom_text(stat =" count")"来添加百分比标签。

但是当我在ggplot geom_bar中添加geom_text(stat =" count")时,R表示"错误:stat_count()不能与y美学一起使用。"我试图弄清楚什么是y美学,但是还不是很成功。

这就是我所做的:

123mydata % mutate(pct=prop.table(value))

现在我们绘制此图:

1234567    ggplot(myresults_pct, aes(x=manipulation, y=pct,fill=variable)) + geom_col()+ scale_fill_grey()+ geom_text(aes(label = scales::percent(pct)), position="stack",vjust=+2.1,col="firebrick",size=3)+ scale_y_continuous(label = scales::percent)

geom_text中的重要参数是position =" stacked",并随心所欲地上下移动标签。 (我为糟糕的文字颜色提前表示歉意。)。

相关讨论 不客气!我鼓励您使用dput提供数据,这是提出一个好问题的一部分,以便其他人也可以帮助和学习:) 谢谢!我编辑了问题以添加我使用的数据,但我的数据框最初是由一个很大的excel文件制成的,先进行dcast(myresults,操作峁缓笕诨╩yresults,id.vars = " manipulation " )。发表此评论时,我突然发现5个小时前我没有意识到的事情。我可以问一个后续问题吗?似乎我确实需要position = " fill ",因为当我删除它时,geom_text起作用了,但是我的y轴变成了125 000%,100 000%,75 000%,50 000%,25 000%,0%而不是原始的100?0%。如果我想保持position = " fill "并且仍然添加标签,该怎么办? 感谢您的举报,我可以根据您提供的内容更改上面的帖子 @Hyeonjeong做完了,请下次提供数据,是的,您不需要position = " fill ",这真的很奇怪。 嗨@Hyeonjeong它有效吗?

您可以尝试创建geom文本的位置并将其放在栏上:

1234567891011mydata[, label_ypos := cumsum(value), by = manipulation] ggplot(myresults, aes(x=manipulation, y=value, fill=variable)) + geom_bar(stat="identity", position="fill", colour="black") + geom_text(aes(y=label_ypos, label= paste(round(rent, 2), '%')), vjust=2,         color="white", size=3.5) + scale_y_continuous(labels = scales::percent) + labs(x ="Manipulation", y=NULL, fill="Result") + theme_bw(base_family ="Cambria") + theme(legend.direction ="vertical", legend.position ="right") + scale_fill_grey() 相关讨论 谢谢您的as顾! StupidWolf的答案解决了我的问题,但是您的答案给了我意外的帮助(特别是" color = " white ",size = 3.5 "部分),这使我的条形图更漂亮了。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3