Я часто делаю коробочные диаграммы, где некоторые категории довольно малы, а другие содержат множество данных, наложенных на разбитые необработанные точки данных. Я ищу надежный способ скрыть коробку и усы для категорий, которые очень малы (N <5). Цель состоит в том, чтобы эти маленькие категории отображали только необработанные данные с использованием слоя geom_point (), а категории, в которых это имеет смысл, получили бы обработку типа «коробочка и усы». То, что мне показалось очевидным, отображение альфа в слое geom_boxplot () на факторную переменную, основанную на N, не работает, потому что альфа контролирует только заливку и, возможно, выбросы в geom_boxplot, а не прямоугольник и усы. </p>
В прошлом я нашел решение, которое работало до тех пор, пока я был готов потратить впустую параметр цвета для этой проблемы. Тем не менее, часто я хочу использовать цвет для чего-то другого, и отображение его дважды приводит к грубому выводу. Другое подходящее мне решение заключается в использовании подмножества данных, из которого были удалены небольшие категории - проблема с этим планом заключается в том, что он не будет правильно обрабатывать ситуации, когда эти категории подчиняются position_dodge () (как будет видеть dodge). "слишком мало категорий).
Минимальный пример ниже.
df <- data.frame(group=factor(sample(c("A","B"), size=110, replace=TRUE)),
sex=factor(c(rep("M",50), rep("F", 50), rep("NB", 10))),
height=c(rnorm(50, 70, 6), rnorm(50, 63, 6), rnorm(10, 65, 6)))
dfsub <- filter(df, !(sex=="NB" & group=="A"))
ggplot(df, aes(x=group, y=height, colour=sex)) +
geom_boxplot(data=dfsub) +
geom_point(position=position_jitterdodge(jitter.width=0.2))