R中带省略号的PCA没有颜色

PCA with ellipsis without colour in R

我正在尝试制作 PCA 图以供发布。这意味着没有颜色。但是,我尝试过的所有包都会在您告诉它对数据类别进行分组时为图着色。

我已经尝试过以下软件包:ggbiplot、ggfortify 和 factoextra。不幸的是,没有成功。

我试过的代码(来自here):

library(ggbiplot)
mtcars.pca <- prcomp(mtcars[,c(1:7,10,11)], center = TRUE,scale. = TRUE)

ggbiplot(mtcars.pca)

ggbiplot(mtcars.pca, labels=rownames(mtcars))

mtcars.country <- c(rep("Japan", 3), rep("US",4), rep("Europe", 7),rep("US",3), "Europe", rep("Japan", 3), rep("US",4), rep("Europe", 3), "US", rep("Europe", 3))

ggbiplot(mtcars.pca,ellipse=TRUE,  labels=rownames(mtcars), groups=mtcars.country)

和returnThis image

但我需要的是:like this

希望我说得够清楚了。

这可能是答案的一半,因为它缺少省略号:

data("mtcars")

mtcars.pca <- prcomp(mtcars[, c(1:7, 10, 11)], center = TRUE, scale = TRUE)
mtcars$country <- as.factor(c(rep("Japan", 3), rep("US",4), rep("Europe", 7),rep("US",3), "Europe", rep("Japan", 3), rep("US",4), rep("Europe", 3), "US", rep("Europe", 3)))

plot(mtcars.pca$x, pch = as.numeric(mtcars$country))
legend("topright", legend = c("Japan", "US", "Europe"), pch = 1:3)

结果:

要绘制椭圆,您可以使用汽车包:

library(car)
dataEllipse(mtcars.pca$x[, 1:2], groups = mtcars$country, levels = 0.98, add = TRUE)

归功于这个问题: Drawing ellipse in R

@SantiagoCapobianco 的答案包含所有部分,但没有将它们放在一起。

使用 car 包中的 dataEllipse 一直使用正确的参数。

library(car)

mtcars.country <- factor(mtcars.country)

dataEllipse(mtcars.pca$x[,1], mtcars.pca$x[,2], mtcars.country, 
    levels=0.8, xlim=c(-5,5), ylim=c(-4,4), center.pch=0,
    col=rep("black", 3), pch=15:17)
legend("topleft", legend=levels(mtcars.country), pch=15:17, bty='n')