Change Continuous Color Range in ggplot2 Plot in R (Example)


In this R post you’ll learn how to adjust the continuous color range in a ggplot2 plot.

Table of contents:

Here’s how to do it!


Example Data, Add-On Packages & Basic Graph

Have a look at the following example data:

set.seed(568323)                                         # Generate continuous example data
data <- data.frame(x = rnorm(500),
                   y = rnorm(500))
head(data)                                               # Print head of example data


table 1 data frame change continuous color range ggplot2 r


As you can see based on Table 1, our exemplifying data is a data frame containing two columns called “x” and “y”.

We also have to install and load the ggplot2 package, in case we want to use the corresponding functions:

install.packages("ggplot2")                              # Install ggplot2 package
library("ggplot2")                                       # Load ggplot2

Now, we can draw a graphic of our data as follows:

ggp <- ggplot(data, aes(x, y, color = y)) +              # ggplot2 plot with default legend
ggp                                                      # Draw ggplot2 scatterplot


r graph figure 1 change continuous color range ggplot2 r


Figure 1 shows the output of the previous code – A ggplot2 scatterplot with default color range.


Example: Set New Continuous Color Range in ggplot2 Plot Using colorRampPalette() & scale_colour_gradientn()

The following R programming syntax explains how to change the color range in a ggplot2 plot of continuous data.

As a first step, we have to define the first and last color (i.e. yellow and red) of our color range using the colorRampPalette function:

fun_color_range <- colorRampPalette(c("yellow", "red"))  # Create color generating function

The previous R code has defined a new function called fun_color_range, which can be used to generate a sequence of colors.

Let’s apply this new function to generate a sequence of 20 colors:

my_colors <- fun_color_range(20)                         # Generate color range
#  [1] "#FFFF00" "#FFF100" "#FFE400" "#FFD600" "#FFC900" "#FFBB00" "#FFAE00"
#  [8] "#FFA100" "#FF9300" "#FF8600" "#FF7800" "#FF6B00" "#FF5D00" "#FF5000"
# [15] "#FF4300" "#FF3500" "#FF2800" "#FF1A00" "#FF0D00" "#FF0000"
my_colors                                                # Print color range

As you can see, we have generated 20 hex color codes.

Next, we can use these colors and the scale_colour_gradientn function for our ggplot2 scatterplot. Have a look at the following R code:

ggp +                                                    # Change colors in ggplot2 plot
  scale_colour_gradientn(colors = my_colors)


r graph figure 2 change continuous color range ggplot2 r


The output of the previous syntax is shown in Figure 2: The values of our scatterplot with a different range of colors.


Video, Further Resources & Summary

I have recently published a video on my YouTube channel, which explains the contents of this article. Please find the video below.


The YouTube video will be added soon.


In addition, you may have a look at the other articles on A selection of articles about similar topics such as colors, ggplot2, and graphics in R is shown below.


You have learned in this tutorial how to change the color range and set a fixed sequence in a ggplot2 plot in the R programming language. Let me know in the comments below, if you have additional comments and/or questions. Furthermore, please subscribe to my email newsletter to receive updates on new tutorials.


Subscribe to the Statistics Globe Newsletter

Get regular updates on the latest tutorials, offers & news at Statistics Globe.
I hate spam & you may opt out anytime: Privacy Policy.

Leave a Reply

Your email address will not be published.

Fill out this field
Fill out this field
Please enter a valid email address.