'尝试使用 geom_text 和 ggplot2 向条形图添加标签时缺少值 error/empty 数据

'Missing value error/empty data when trying to add labels to a bar chart using geom_text with ggplot2

我正在尝试向我使用 ggplot2 制作的堆叠条形图添加标签,但一直出现奇怪的错误。

我的 table 是这样的:

dd <- read.table(text = "ORIGIN ANIMAL SEX COUNT PR
             1 Canada Dog M 3 37.5
             2 Canada Dog F 5 62.5
             3 Canada Bunny M 3 75
             4 Canada Bunny F 1 25
             5 US Bunny M 9 90
             6 US Bunny F 1 10
             7 US Dog M 3 50
             8 US Dog F 3 50", sep = "", header = TRUE)

并做了图:

p <-ggplot() + geom_bar(data = dd, aes(y = PR, x = ANIMAL, fill = SEX), 
  stat = "identity", position='stack') + 
  labs( y = "Proportion", x = "") +
  theme_bw() +
  facet_grid( ~ ORIGIN) 

正在生成:

我正在尝试向数据添加 COUNT 个标签,类似于此线程中所做的:

Showing data values on stacked bar chart in ggplot2

但是,当我尝试使用以下方法添加标签时:

p + geom_text(aes(labels = COUNT)

我收到错误:

Error in if (empty(data)) { : missing value where TRUE/FALSE needed

我已经尝试明确说明 geom_text 的所有布尔参数,但 R 只是忽略了未知的美学。

有谁能解释一下我做错了什么吗?

谢谢

您需要将常用参数移至主函数,特别是 datax, y 美学。

library(ggplot2)

p <-ggplot(data = dd, aes(y = PR, x = ANIMAL)) + 
             geom_col(aes(fill = SEX), position='stack') + 
  labs( y = "Proportion", x = "") +
  theme_bw() +
  facet_grid( ~ ORIGIN)

p + geom_text(aes(label = COUNT), position=position_stack(vjust=0.5), color="white")

请注意 geom_col 等同于 geom_barstat="identity"。您可能还想使用 position_stack()

中的 vjust 参数将标签调整到堆叠条的中心