【发布时间】:2020-02-20 00:39:06
【问题描述】:
在这种情况下,我在 iris 数据框中添加了一个分组变量。我希望按物种制作 Sepal.Length 的箱线图,并由分组变量填充,并使用标签标识的异常值。这一切都有效,但是当我尝试用 geom_text 标记异常值时,它们现在确实使用分组位置打印,而是在中心打印。似乎 geom_text 没有继承全局 aes() 但我不知道为什么。
代码:
library(tidyverse) # function to id outlier is_outlier <- function(x) { return(x < quantile(x, 0.25) - 1.5 * IQR(x) | x > quantile(x, 0.75) + 1.5 * IQR(x)) } # make a grouping variable iris$group <- sample(1:3, nrow(iris),replace = T) # make a outlier variable iris <- iris %>% group_by(Species, group) %>% mutate(outlier = ifelse(is_outlier(Sepal.Length), Sepal.Length, as.numeric(NA))) iris$outlier # graph iris %>% ggplot(aes(x = Species,y = Sepal.Length, fill = factor(group))) + geom_boxplot() + geom_text(aes(label = outlier))
标签在中心而不是在它们各自的盒子上。这是怎么回事?
【问题讨论】: