首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用ggfortify和ggrepel进行pca

用ggfortify和ggrepel进行pca
EN

Stack Overflow用户
提问于 2017-06-23 19:18:05
回答 2查看 5.4K关注 0票数 8

我正在用varimax旋转进行主成分分析,并希望显示看起来足够简单的图,但是我的加载向量在某些地方非常接近,而且它们的标签往往是重叠的。这就是ggrepel为了分离阴唇而来的地方。我现在面临的难题是如何将两者联系起来。我使用了自动绘图,它自动添加所需的文本,这使得很难定义要排斥的文本。也许还有其他的方法去做这件事,我愿意接受建议。我有我的代码工作,但有重叠,我的一次尝试排斥下面的代码。

代码语言:javascript
复制
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))))

代码语言:javascript
复制
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")
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-29 23:56:24

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

此示例仅对mtcars数据集使用相同的代码。

没有排斥标签的

代码语言:javascript
复制
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") 

带有排斥标签的

代码语言:javascript
复制
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") 

票数 11
EN

Stack Overflow用户

发布于 2017-06-24 02:36:43

您还没有提供任何数据来使此可重复使用,但是您可能对这个包ggbiplot有更多的运气。

代码语言:javascript
复制
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)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44728546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档