Draw ggplot2 Plot with Two Different Continuous Color Scales in R (Example)
In this article you’ll learn how to use two different color ranges in a ggplot2 plot in R.
The table of content is structured as follows:
Let’s start right away:
Creation of Example Data
The first step is to construct some data that we can use in the examples later on:
data1 <- data.frame(x1 = rnorm(500), # Create first example data frame y1 = rnorm(500)) head(data1) # Print head of first example data frame
data2 <- data.frame(x2 = runif(500), # Create second example data frame y2 = runif(500)) head(data2) # Print head of second example data frame
The output of the previous R programming syntax is shown in Tables 1 and 2: As you can see, we have created two different data frames, each consisting of two randomly distributed numeric variables.
Let’s draw these data!
Example: Draw ggplot2 Plot with Two Different Color Scales Using ggnewscale Package
This example explains how to create a ggplot2 plot of two data sets where each data set has its own continuous color range.
As a first step, we have to install and load the ggplot2 package:
install.packages("ggplot2") # Install ggplot2 package library("ggplot2") # Load ggplot2 package
Next, we also have to install and load the ggnewscale package:
install.packages("ggnewscale") # Install ggnewscale package library("ggnewscale") # Load ggnewscale
The ggnewscale package provides the new_scale_color function. This function can be used to create a new color scale.
Consider the R programming syntax below:
ggplot() + # Draw ggplot2 plot with two color scales geom_point(data = data1, aes(x = x1, y = y1, color = y1)) + scale_color_gradient(low = "green", high = "blue") + new_scale_color() + geom_point(data = data2, aes(x = x2, y = y2, color = y2)) + scale_color_gradient(low = "yellow", high = "red")
In Figure 1 you can see that we have managed to create a ggplot2 scatterplot by running the previous R programming code.
The data of the first data set has a color scale ranging from green to blue, and the data of the second data set has a color scale ranging from yellow to red.
The two color ranges have been specified by the scale_color_gradient function, and the new_scale_color function has been used to tell R that we wanted to start a new color scale.
Looks great! 🙂
Video & Further Resources
I have recently published a video on my YouTube channel, which illustrates the R syntax of this tutorial. You can find the video below.
Furthermore, you may want to read the related tutorials which I have published on Statistics Globe. I have published numerous articles on topics such as ggplot2, groups, and lines:
- Draw Plot with Two Y-Axes
- Add Different Line to Each Facet of ggplot2 Plot
- Draw Two ggplot2 Boxplots on Same X-Axis Position
- Set Color by Group in ggplot2 Plot
- Draw ggplot2 Plot with Two Y-Axes in R
- R Graphics Gallery
- Introduction to R
Summary: At this point you should have learned how to use separate color scales in a continuous ggplot2 plot in the R programming language. In case you have any further questions, let me know in the comments section.