rggplot2pcaggbiplotprincomp

ggbiplot - change the colour of labels


By default, the ggbiplot function gives a graph with loadings as red arrows and unit labels in black:

library(ggbiplot)
data("USArrests")
us <- princomp(USArrests)
ggbiplot(us, labels = rownames(us$scores))

Here is the result of that code

How can I change the colour of these labels, and incidentally their size or font?


Solution

  • library(ggbiplot)
    library(grid)
    data("USArrests")
    us <- princomp(USArrests)
    
    # Cut the third score into 4 intervals using quantiles
    cols <- cut(us$scores[,3], quantile(us$scores[,3], probs=seq(0,1,0.25)), include.lowest=T)
    
    # Change label colors using the "group" option
    # Change label font size using the "label.size" option
    p <- ggbiplot(us, labels = rownames(us$scores), groups=cols, labels.size=4)
    
    # Change label font family 
    g <- ggplotGrob(p)
    g$grobs[[6]]$children[[4]]$gp$fontfamily <- "mono"
    grid.draw(g)
    

    enter image description here

    To change label colors as a whole:

    p <- ggbiplot(us, labels = rownames(us$scores), groups=1, labels.size=4) +
         theme(legend.position = "none")
    
    # Change label colors 
    g <- ggplotGrob(p)
    g$grobs[[6]]$children[[4]]$gp$col <- "#FF9900"
    grid.draw(g)
    

    enter image description here