当 r 中的 y 轴不是数字时,如何在条件下将文本分配给 ggplot

how to assign text to ggplot with a condition when y axis is not numeric in r

我想为每个变量注释缺失值的百分比,这些变量实际上在相应变量蓝线上方某处有任何缺失值。 我可以使用 geom_text 添加文本,但我很难知道如何使用 Nas select 那些变量。如果有任何提示,我将不胜感激。

library(ggplot2)
library(naniar)
gg_miss_var(airquality) + labs(y = "Look at all the missing ones")

您可以使用 naniar::miss_var_summary() 创建一个数据框,其中包含至少一个 NA:

的所有变量的标签
df <- miss_var_summary(airquality) %>% 
  dplyr::filter(n_miss > 0) %>% 
  dplyr::mutate(pct_label = paste0(round(pct_miss, 1), '%'))

然后您可以在 geom_text() 行中使用此数据框:

gg_miss_var(airquality) + 
  geom_text(data = df, aes(x = as.factor(variable), y = n_miss, label = pct_label), 
            vjust = 1.5) +
  labs(y = "Look at all the missing ones")