如何从 R 中 PCA 的 ggbiplot 中删除不重要的箭头?

How can I remove arrows from ggbiplot of PCA in R that are not significant?

所以,我试图在白天和夜间猛禽的饮食中创建一个猎物顺序的 PCA ggbiplot,但问题是 ggbiplot 函数会自动为每个猎物创建箭头命令。只有大约 8 个订单对我的研究有意义(即在 PC1 和 PC2 中的值大于或等于 0.1)。

这就是 ggbiplot 现在的样子:


我还能够使用 var.axes = FALSE 函数成功删除所有箭头以获得此图:


但问题是,无论是从哪个情节,我都不确定如何只删除一部分箭头以便我可以只保留我需要的 8 个,或者在我删除所有箭头后从头开始将这 8 个添加回情节的箭头。

编辑:我希望所有 38 个订单的 PC 值仍被计入图中,我只想删除不必要的箭头,直到只剩下 8 个。

可重现的例子:

#load iris data
iris$Species = NULL # (to run the PCA)
iris_pca = prcomp(iris)
ggbiplot(iris_pca) + theme_classic()

所以,假设我不想包含 Sepal.Width 或 Petal.Width 的箭头。我如何删除它们并保留另外两个?

看代码here,好像不行。如下所示,您可以在其中更改生成的 ggplot2 对象。

# Load library
library(ggbiplot)
#> Loading required package: ggplot2
#> Loading required package: plyr
#> Loading required package: scales
#> Loading required package: grid

# Remove species
iris$Species <- NULL

# Perform PCA
iris_pca <-  prcomp(iris) 

# Create ggbiplot
g <- ggbiplot(iris_pca) + theme_classic()

# Before plot
plot(g)

# Get ggplot2 object
g <- ggplot_build(g)

# Remove unwanted arrows & labels, say, Petal.Length Petal.Width
g$data[[1]] <- g$data[[1]][-(3:4), ]
g$data[[3]] <- g$data[[3]][-(3:4), ]

# Repackage & plot
plot(ggplot_gtable(g))

reprex package (v0.2.1)

创建于 2019-03-01