我正在尝试为一些个人数据创建一个带有标签的箱线图。箱线图由两个变量分隔,映射到 x 和颜色。但是,当我使用 ggrepel 包中的 geom_text_repel 添加标签时(对于真实数据是必需的),它们由 x 分隔,而不是颜色。请参阅这个最小的可重现示例:
library(ggplot2)
library(ggrepel)
## create dummy data frame
rep_id <- c("a", "a", "b", "b", "c", "c", "d", "d", "e", "e")
dil <- c(1, 1, 1, 1, 2, 2, 2, 2, 2, 2)
bleach_time <- c(0, 24, 0, 24, 0, 24, 0, 24, 0, 24)
a_i <- c(0.1, 0.2, 0.35, 0.2, 0.01, 0.4, 0.23, 0.1, 0.2, 0.5)
iex <- data_frame(rep_id, dil, bleach_time, a_i)
rm(rep_id, dil, bleach_time, a_i)
## Plot bar chart of a_i separated by bleach_time and dil
p <- ggplot(iex, aes(x = as.character(bleach_time), y = a_i, fill = as.factor(dil))) +
geom_boxplot() +
geom_text_repel(aes(label = rep_id, colour = as.factor(dil)), na.rm = TRUE, segment.alpha = 0)
p
如您所见,标签采用颜色编码,但它们都围绕每对图的中心排列,而不是被图分开。我试过 nudge_x 但这会将所有标签一起移动。有没有办法可以单独移动每组标签?
为了比较,这里是我的完整数据集与标记的异常值的图 - 您可以看到每组标签如何不以它标记的点为中心,从而使解释复杂化: