Я пытаюсь создать диаграмму с метками для некоторых отдельных данных. Блочная диаграмма разделена двумя переменными, сопоставленными с x и цветом. Однако, когда я добавляю метки с помощью geom_text_repel из пакета ggrepel (необходимого для реальных данных), они разделяются по 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, но он перемещает все метки вместе. Есть ли способ перемещать каждый набор меток по отдельности?
Для сравнения вот график моего полного набора данных с помеченными выбросами - вы можете видеть, что каждый набор меток не сосредоточен вокруг точек, которые он помечает, что усложняет интерпретацию:
aes
вgeom_text_repel
; он должен войти внутрь, чтобы быть сопоставленным с эстетическим - person camille   schedule 31.05.2018position = "dodge"
. Блочные диаграммы уклоняются автоматически — в противном случае они просто находились бы друг над другом — но текст не обязательно - person camille   schedule 31.05.2018position = position_dodge(width = 0.9)
. Спасибо за помощь! Если вы хотите представить это как ответ, я могу принять его и дать вам репутацию. - person Lucy Wheeler   schedule 31.05.2018