Я пытаюсь пометить выбросы в geom_boxplot
с помощью ggrepel::geom_label_repel
. Это хорошо работает, когда есть только одна группирующая переменная, но когда я пробую это для нескольких группирующих переменных, я сталкиваюсь с проблемой. По какой-то причине аргумент position в ggrepel работает не очень последовательно, см. этот пример:
library(tidyverse)
library(ggrepel)
set.seed(1337)
df <- tibble(x = rnorm(500),
g1 = factor(sample(c('A','B'), 500, replace = TRUE)),
g2 = factor(sample(c('A','B'), 500, replace = TRUE)),
rownames = 1:500)
is_outlier <- function(x) {
return(x < quantile(x, 0.25) - 1.5 * IQR(x) | x > quantile(x, 0.75) + 1.5 * IQR(x))
}
df_outliers <- df %>% group_by(g1, g2) %>% mutate(outlier=is_outlier(x))
ggplot(df_outliers, aes(x=g1, y=x, fill=g2)) +
geom_boxplot(width=0.3, position = position_dodge(0.5)) +
ggrepel::geom_label_repel(data=. %>% filter(outlier),
aes(label=rownames), position = position_dodge(0.8))
Есть ли способ сделать так, чтобы метки указывали на сопутствующие точки с помощью ggrepel?
. %>% filter(outlier) %>% group_by(g1) %>% complete(g2)
. Однако это не решает проблему рисования линий с помощью ggrepel. - person aosmith   schedule 20.11.2018