How to Create a ggplot Plot with Two Y-Axes in R (Example Code)
On this page you’ll learn how to draw a plot with two y-axes using the ggplot2 package in R programming.
Preparing the Example
data(iris) # Loading example data head(iris) # Sepal.Length Sepal.Width Petal.Length Petal.Width Species # 1 5.1 3.5 1.4 0.2 setosa # 2 4.9 3.0 1.4 0.2 setosa # 3 4.7 3.2 1.3 0.2 setosa # 4 4.6 3.1 1.5 0.2 setosa # 5 5.0 3.6 1.4 0.2 setosa # 6 5.4 3.9 1.7 0.4 setosa |
data(iris) # Loading example data head(iris) # Sepal.Length Sepal.Width Petal.Length Petal.Width Species # 1 5.1 3.5 1.4 0.2 setosa # 2 4.9 3.0 1.4 0.2 setosa # 3 4.7 3.2 1.3 0.2 setosa # 4 4.6 3.1 1.5 0.2 setosa # 5 5.0 3.6 1.4 0.2 setosa # 6 5.4 3.9 1.7 0.4 setosa
Example: Creating ggplot2 Plot of Iris Data with Two Y-Axes
First, we have to install and load the ggplot2 add-on package:
install.packages("ggplot2") # Install ggplot2 package library("ggplot2") # Load ggplot2 package |
install.packages("ggplot2") # Install ggplot2 package library("ggplot2") # Load ggplot2 package
ggplot(iris, aes(1:nrow(iris), Sepal.Length)) + # Drawing iris data in ggplot2 plot geom_point() + scale_y_continuous( "Sepal.Length in Centimeters", sec.axis = sec_axis(~ . * 10, name = "Sepal.Length in Millimeters") ) |
ggplot(iris, aes(1:nrow(iris), Sepal.Length)) + # Drawing iris data in ggplot2 plot geom_point() + scale_y_continuous( "Sepal.Length in Centimeters", sec.axis = sec_axis(~ . * 10, name = "Sepal.Length in Millimeters") )
Related Articles
Here, you may find some additional resources on topics such as graphics in r, ggplot2, and variables: