Ограничить stat_ellipse определенными точками данных

У меня есть набор данных с четырьмя категориями гласных, похожими на следующие:

speaker   vowel_category  f1    f2
1          a              x     x
1          b              x     x
1          c              x     x
1          d              x     x
2          a              x     x
2          b              x     x...

Этот код geom_point строит их все в один график с помощью stat_ellipse и на 90% соответствует тому, что мне нужно:

ggplot(data = topicsubset_ikf, aes(x = F2, y = F1, shape = CATEGORY)) +
  geom_point() +
  scale_y_reverse() +
  scale_x_reverse() +
  xlab("F2") +
  ylab("F1") + 
  labs(title = "All speakers with KIT and FLEECE tokens") +
  coord_cartesian(xlim = c(1.9, 1.1), ylim = c(0.3, 1.5)) +
  facet_wrap(~ SPEAKER) +
  scale_color_manual(values = c("#000000", "#FF8F00", "#000000", "#A200FF")) +
  stat_ellipse(geom = "polygon", alpha = 1 / 2, aes(fill = CATEGORY))

Однако было бы идеально, если бы я мог нарисовать эллипсы только вокруг двух из четырех категорий (скажем, a и b), а не вокруг всех четырех, чтобы я мог посмотреть на разброс c и d относительно a и b. Я пока не смог найти способ - я пытался объединить несколько наборов данных на одном графике, но безрезультатно. Какие-либо предложения?


person HML    schedule 24.10.2017    source источник
comment
stat_ellipse(data = subset(topicsubset_ikf, CATEGORY %in% ....) Попробуйте подмножить данные, переданные в geom.   -  person missuse    schedule 24.10.2017
comment
Это идеально! Большое спасибо.   -  person HML    schedule 24.10.2017


Ответы (1)


У меня была та же проблема, я обнаружил, что теперь вы можете просто указать группу в stat_ellipse следующим образом:

stat_ellipse(geom = "polygon", alpha = 1 / 2, aes(fill = CATEGORY, group = CATEGORY))

person Alejandro Plazas    schedule 28.10.2020