使用autoplot显示非默认主成分(ggfortify)

alb*_*ons 3 r ggplot2 pca ggfortify

我想使用autoplot()包的功能在PC3上绘制PC2 ggfortify.默认情况下,只显示PC1和PC2:

library(ggfortify)
myPCA <- prcomp(iris[-5])
autoplot(myPCA)
Run Code Online (Sandbox Code Playgroud)

我可以通过重新排序和重命名prcomp对象中的列来获得我想要的东西:

myPCAtrunc <- myPCA
myPCAtrunc[[1]] <- myPCAtrunc[[1]][c(2,3,1,4)]
myPCAtrunc[[2]] <- myPCAtrunc[[2]][,c(2,3,1,4)]
colnames(myPCAtrunc[[2]]) <- c("PC1","PC2","PC3","PC4") # fake names
myPCAtrunc[[5]] <- myPCAtrunc[[5]][,c(2,3,1,4)]
colnames(myPCAtrunc[[5]]) <- c("PC1","PC2","PC3","PC4") # fake names
autoplot(myPCAtrunc, xlab = "PC2", ylab="PC3")
Run Code Online (Sandbox Code Playgroud)

我知道这是正确的,因为它是一样的plot(myPCA$x[, c(2,3)]).

但必须有一种更清洁的方法来解决它.一些想法?

eot*_*otp 13

这个问题最近解决了(这里).

autoplot(myPCA,    # your prcomp object
         x = 2,    # PC2
         y = 3)    # PC3
Run Code Online (Sandbox Code Playgroud)