我正在尝试绘制两个因子变量,并在图中使用%标记结果。
我已经检查了此帖子以及他/她提供的链接:
How to center stacked percent barchart labels
您在这里使用的ggplot行实际上来自推荐的其中一篇文章:
sex <- c("F","F","M", "M", "M", "F","M","F","F", "M", "M", "M", "M","F","F", "M", "M", "F")
behavior <- c("A", "B", "C", "A", "B", "C", "A", "B", "C", "A", "B", "C", "A", "B", "C", "B", "C", "A")
BehSex <- data.frame(sex, behavior)
ggplot(BehSex, aes(x= factor(sex), fill= factor(behavior), y = (..count..)/sum(..count..)))+
geom_bar() +
stat_bin(geom = "text",
aes(label = paste(round((..count..)/sum(..count..)*100), "%")),
vjust = 5)
但是,当我使用该行时,出现以下错误:
错误:StatBin需要连续的x变量:x变量是离散的。也许您想要stat =“ count”?
我尝试在geom_bar()中使用stat =“ count”,但似乎无法按预期工作。
三个问题:1)我在做什么错?2)如何管理我想要的东西?3)如何绘制:%,然后在另一张图中计数?
Here's the plot that I have right now
谢谢您的帮助!
我认为一种更简单的将y轴标签格式化为百分比的方法是使用scale_y_continuous(labels = scales::percent)
,而不是使用stat_bin(...)
。因此,代码可以保持几乎相同。