Я не уверен, что это можно сделать в вызове 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)