Почему форма геометрической точки PCA включает факторы, которые не указаны?

#r #ggplot2

#r #ggplot2

Вопрос:

Привет, я хотел бы создать PCA с добавлением eclipse. Однако я понял, что когда я пытаюсь указать group в качестве shape, ggplot добавит group в дополнение к тому, что я использовал для eclipse. Вот пример.

 res.pca <- prcomp(iris[, -5],  scale = TRUE)

iris$group = ifelse ( iris$Sepal.Length > 5, "high", "low")

p = fviz_pca_ind(res.pca, label="none"
             , habillage=iris$Species
             ,addEllipses=TRUE, ellipse.level=0.95)


p  geom_point(aes(shape= factor(iris$group ) ) ) 
  

Итак, как вы можете видеть, я установил для habillage значение species и попытался нарисовать фигуру с помощью factor group, но по какой-то причине фигура добавляет не только группу, но и виды. В идеале я хочу иметь группу только с формами high и low.
Спасибо!

введите описание изображения здесь

Ответ №1:

Проблема в том, что fviz_pca_ind() создает эстетику, которую трудно настроить впоследствии.

Одно из решений состоит в том, чтобы запретить ему создавать точки с эстетикой, используя geom.ind . Затем вы можете добавить точки обратно. Наконец, вы должны использовать guides() для отключения некоторых функций легенды.

 p = fviz_pca_ind(res.pca, label="none"
                 , habillage=iris$Species
                 , addEllipses=TRUE, 
                geom.ind = c("text"),
                 ellipse.level=0.95) 

 
p   geom_point(aes(shape = factor(iris$group), 
                   color = factor(iris$Species)))  
  guides(color = FALSE, size = FALSE)