interestedindata
interestedindata

Reputation: 139

How to display observations in pca biplot?

I'm hoping to display observation row names on a principal component analysis biplot using the factoextra package.

library(factoextra)
## organize dataset to obtain unique rownames
iris$id <- rownames(iris)
iris$id <- paste(iris$Species, iris$id, sep="_")
rownames(iris) <- iris$id
iris <- iris[,1:4]

## Run PCA
pca <- prcomp(iris, center=T, scale. = T)

## On this plot observation names are displayed
fviz_pca_ind(pca,
         col.ind = "cos2", # Color by the quality of representation
         gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
         repel = TRUE
)

)enter image description here

## Is there any way to display the same row names in this plot? (instead of points)
fviz_pca_biplot(pca,
            col.var = "#2E9FDF", # Variables color
            col.ind = "#696969",  # Individuals color
            label = 'var',
            repel = TRUE
)

enter image description here

Thanks in advance

Upvotes: 3

Views: 1030

Answers (1)

StupidWolf
StupidWolf

Reputation: 46898

You can specify geom.ind = "txt"

fviz_pca_biplot(pca,geom.ind="text",labelsize=2,
col.var = "#2E9FDF",col.ind = "#696969")

And try to add the ggrepel :

options(ggrepel.max.overlaps = 20)
fviz_pca_biplot(pca,geom.ind="text",labelsize=2,
col.var = "#2E9FDF",col.ind = "#696969",repel=TRUE)

enter image description here

Upvotes: 3

Related Questions