Today, we will discuss the scree plot in the R programming language. In this article, we will use the ggplot2 package in R to plot the scree plot.
What is the scree plot in R?
We will apply PCA to the USArrests dataset and plot the scree plot. To begin, we will make a scree plot out of line plots, with the principal components and variance explained by each PC as a point connected by a line. Then, using a barplot, we’ll make a Scree plot with the principal components indicating the explained variance.
How to create a scree plot in R
Load dataset
Here, we will load the USArrests dataset to plot a scree plot in R. You can click here if you don’t know how to remove it. See the code example below
# Load data data("USArrests") dat <- USArrests # View a data head(dat)
Compute Principal Component Analysis using prcomp() function
Principal Component Analysis (PCA) is a statistical process that converts a set of correlated variables to a set of uncorrelated variables using an orthogonal transformation. Scale=TRUE normalizes the data.
# Load data data("USArrests") dat <- USArrests # Compute PCA PCA <- prcomp(dat, scale = TRUE) # View a PCA PCA
Compute variance explained by each Principal Component
Now, we use the algorithm below to calculate the overall variance encountered by each PC.
# Load data data("USArrests") dat <- USArrests # Compute PCA PCA <- prcomp(dat, scale = TRUE) attach(PCA) # Compute Total Variance var <- sdev^2 / sum(sdev^2) var
Plot Scree plot with Line plot
Here, we will start to plot a scree plot in R using the ggplot2 package. So, we will install and load the ggplot2 package. You can click this link to know how to install and load the package.
# Load package library(ggplot2) # Remove the species column numIris <- subset(iris, select = -c(Species) ) # Compute PCA PCA <- prcomp(numIris, scale = TRUE) attach(PCA) # Compute Total Variance var <- sdev^2 / sum(sdev^2) # Scree plot with line plot qplot(c(1:4), var) + geom_point(size = 4) + geom_line() + ylim(0, 1) + ggtitle("Scree Plot") + xlab("Principal Component") + ylab("Variance Explained")
Output

Plot Scree plot with barplot
We can plot a scree plot with a barplot as follows:
# Load package library(ggplot2) # Remove the species column numIris = subset(iris, select = -c(Species)) # Compute PCA PCA <- prcomp(numIris, scale = TRUE) attach(PCA) # Compute Total Variance var = sdev^2 / sum(sdev^2) # Scree plot with barplot qplot(c(1:4), var) + ylim(0, 0.8) + geom_col() + ggtitle("Scree Plot") + xlab("Principal Component") + ylab("Variance Explained")
Output

Summary
This article will demonstrate how to plot a scree plot in R with the line plot and barplot. So, please comment if you have any questions.
Have a great day!

Hi, guys! My name’s Scott Miller. My current job is a software developer and I have shared a lot of quality articles about Javascript, C, C++, C#, Python, PHP, R, Java programming languages. I’m hoping they can assist you.
Name of the university: HCMUS
Major: IT
Programming Languages: C, C++, Python, R, Java, JavaScript