将 ggfortify 和 ggrepel 用于 pca

Using ggfortify and ggrepel for pca

我是运行主成分分析方差最大旋转并希望显示看起来足够简单的图,但是我的加载向量在某些地方非常接近并且它们倾向于哪个因子的标签重叠。这就是 ggrepel 为了分隔标签而出现的地方。我现在的困境是弄清楚如何将两者联系起来。我使用了自动绘图,它会自动添加所需的文本,这使得很难定义要排斥的文本。可能还有其他解决方法,我愿意接受建议。我的代码可以工作,但有重叠,并且我尝试排斥下面的代码之一。

autoplot(prcomp(built.df9),
loadings = TRUE, loadings.colour = 'blue', loadings.label = TRUE, 
loadings.label.size = 4, loading.label.color = 'red') +
ggtitle(label = "Principal Component Analysis and Varimax Rotation for Built 
Environment Indicators") +
geom_text_repel(aes(label = rownames(prcomp(built.df9))))

autoplot(prcomp(built.df9),
loadings = TRUE, loadings.colour = 'blue', loadings.label = TRUE, 
loadings.label.size = 4, loading.label.color = 'red') +
ggtitle(label = "Principal Component Analysis and Varimax Rotation for Built 
Environment Indicators")

你没有提供任何数据来使这个重现,但是你可能更幸运地使用这个包,ggbiplot

library(ggbiplot)

data(mtcars)

standardised<-as.data.frame(scale(mtcars[2:ncol(mtcars)]))

mtcars.pca<-prcomp(standardised,retx=TRUE)

ggbiplot(mtcars.pca, obs.scale=1, var.scale=1,  ellipse=F, circle=F,labels.size = 4)

您可以使用 ggfortify 包中的 loadings.label.repel=T

此示例使用您的相同代码,只是 mtcars 数据集。

没有排斥标签:

library(ggplot2)
library(ggfortify)

autoplot(prcomp(mtcars),
         loadings = TRUE, loadings.colour = 'blue', loadings.label = TRUE, 
         loadings.label.size = 4, loading.label.color = 'red') +
  ggtitle(label = "Principal Component Analysis and Varimax Rotation for Built 
          Environment Indicators") 

带有被排斥的标签:

autoplot(prcomp(mtcars),
         loadings = TRUE, loadings.colour = 'blue', loadings.label = TRUE, 
         loadings.label.size = 4, loading.label.color = 'red',loadings.label.repel=T) +
  ggtitle(label = "Principal Component Analysis and Varimax Rotation for Built 
          Environment Indicators")