GGbiplot дополнительный цвет для некоторых точек данных

Возможно ли в пакете ggbiplot в R пометить некоторые специальные точки данных, такие как точка данных с Alcohol = 13.2 другим цветом, чем в кластерах. Я хочу выделить некоторые конкретные точки данных.

data(wine)
wine.pca <- prcomp(wine, scale. = TRUE)
print(ggbiplot(wine.pca, obs.scale = 1, var.scale = 1, groups = wine.class, 
   ellipse = TRUE, circle = TRUE))

person Bettina    schedule 05.05.2018    source источник


Ответы (2)


Да, поскольку ggbiplot является действительным объектом ggplot2, вы можете добавить к нему geom так же, как и к другим ggplot.

cond <- wine.pca$x[which(wine$Alcohol == 13.2),]
cond[1:2]

Возвращает:

       PC1        PC2 
-2.2032498 -0.3324551 

Вот код. Обратите внимание, что мы используем geom_point и указываем на PC1 и PC2 соответственно для осей x и y, где wine$Alcohol==13.2:

library(ggbiplot)
data(wine) 
wine.pca <- prcomp(wine, scale. = TRUE)
ggbiplot(wine.pca, obs.scale = 1, var.scale = 1, groups = wine.class, ellipse = TRUE, circle = TRUE) + 
geom_point(aes(x=cond[1], y=cond[2]), col="goldenrod2", size=3) 

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

person onlyphantom    schedule 05.05.2018

Я не уверен, что это можно сделать внутри вызова ggbiplot, но это определенно возможно, добавив еще один слой. Вот пример:

library(ggbiplot)

data(wine)
wine.pca <- prcomp(wine, scale. = TRUE)
p <- ggbiplot(wine.pca, obs.scale = 1, var.scale = 1, groups = wine.class, 
               ellipse = TRUE, circle = TRUE)

теперь подставьте точки, которые вы хотели бы выделить:

wine.pca$x[wine$Alcohol == 13.2, 1:2, drop = FALSE] #drop = FALSE to keep matrix class

и укажите это как data до geom_point:

p + geom_point(data = wine.pca$x[wine$Alcohol == 13.2, 1:2, drop = FALSE],
              aes(x = PC1, y = PC2), color = "black")

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

вы также можете сделать что-то вроде этого:

p + geom_point(data = wine.pca$x[wine$Alcohol == 13.2, 1:2, drop = FALSE],
               aes(x = PC1, y = PC2), color = "black", shape = 21, size = 7)

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

однако это может быть слишком много, если вы хотите выделить много моментов:

p + geom_point(data = wine.pca$x[wine$Alcohol >= 13.2, 1:2],
               aes(x = PC1, y = PC2), color = "black", shape = 21, size = 7)

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

person missuse    schedule 05.05.2018