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

问题描述 投票:1回答:2

我正在尝试制作出版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)

并返回This image

但我需要的是:like this

希望我足够清楚。

r colors pca
2个回答
2
投票

@SantiagoCapobianco的答案包含所有部分,但不会将它们组合在一起。

使用汽车包装中的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')

Data Ellipses


1
投票

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

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)

结果:enter image description here

要绘制省略号,您可以使用汽车包:

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

enter image description here

相信这个问题:Drawing ellipse in R

© www.soinside.com 2019 - 2024. All rights reserved.