require(ggplot2) theta <- seq(0,2*pi,length.out = 100) circle <- data.frame(x = cos(theta), y = sin(theta)) p <- ggplot(circle,aes(x,y)) + geom_path() loadings <- data.frame(ir.pca$rotation, .names = row.names(ir.pca$rotation)) p + geom_text(data=loadings, mapping=aes(x = PC1, y = PC2, label = .names, colour = .names)) + coord_fixed(ratio=1) + labs(x = "PC1", y = "PC2")