7

我正在使用 varimax 旋转进行主成分分析,并希望显示看起来很简单的图,但是我的加载向量在某些地方非常接近,并且它们的标签往往会重叠。这就是 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")
4

2 回答 2

10

您可以loadings.label.repel=Tggfortify包装中使用。

此示例使用您的相同代码,只是使用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") 

在此处输入图像描述

于 2017-06-29T23:56:24.453 回答
1

您还没有提供任何数据来使这个可重现,但是您可能对包有更多的运气,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)

在此处输入图像描述

于 2017-06-24T02:36:43.873 回答