# Change Colors of Ranges in ggplot2 Heatmap in R (2 Examples)

In this tutorial youâ€™ll learn how to modify the colors of value ranges in a ggplot2 heatmap in R programming.

The article looks as follows:

With that, letâ€™s dive right into the exemplifying R syntax.

## Exemplifying Data, Packages & Default Graphic

Have a look at the example data below:

```set.seed(56489)                                       # Set random seed
data <- data.frame(x = rep(LETTERS[1:10], each = 5),  # Create example data
y = letters[1:5],
values = runif(50, 0, 10))

Have a look at the previous table. It shows that our example data is composed of three columns.

In this tutorial, weâ€™ll also need to install and load the ggplot2 package to R:

```install.packages("ggplot2")                           # Install ggplot2 package

As next step, we can plot the data in a heatmap as shown below:

```ggplot(data, aes(x, y, fill = values)) +              # Default ggplot2 heatmap
geom_tile()```

In Figure 1 you can see that we have managed to create a ggplot2 heatmap in R. However, the color range is based on the default color palette of the ggplot2 package.

Next, Iâ€™ll show how to change this color range. So keep on reading!

## Example 1: Change Color Range in Heatmap Using scale_fill_gradient Function

The syntax below demonstrates how to adjust the color range by defining a low and high color of our color gradient range.

For this, we can use the scale_fill_gradient function as shown in the following R code:

```ggplot(data, aes(x, y, fill = values)) +              # Change gradient color
geom_tile() +
high = "#f6f805",
guide = "colorbar")```

After running the previous syntax the heatmap shown in Figure 2 has been created. As you can see, we have changed the color gradient in our graphic.

However, you can also see that the previous heatmap is still based on two main colors. In the following example, Iâ€™ll show how to use very different colors to highlight the cells and data points of our heatmap.

## Example 2: Change Colors of Range-Groups in Heatmap Using scale_fill_manual Function

The R programming syntax below shows how to define ranges and assign heatmap colors based on these ranges.

First, we have to convert our numerical values to categories:

```data_new <- data                                      # Duplicate data
data_new\$groups <- cut(data_new\$values,               # Add group column
breaks = c(0, 2, 4, 6, 8, 10))

By running the previous R code we have created Table 2, i.e. a data frame containing a categorical variable for our ranges.

In the next step, we can apply the scale_fill_manual function to define a color for each of our categories:

```ggplot(data_new, aes(x, y, fill = groups)) +          # Specify colors manually
geom_tile() +
scale_fill_manual(breaks = levels(data_new\$groups),
values = c("#353436", "#f6f805", "#1b98e0", "white", "green"))```

By running the previous R syntax we have created Figure 3, i.e. a heatmap with completely different colors for each range of values in our data.

## Video, Further Resources & Summary

In case you need more explanations on the R code of this tutorial, you could have a look at the following video of the Statistics Globe YouTube channel. In the video, I explain the R programming codes of this tutorial:

In addition, you may want to read the related tutorials on this website. A selection of tutorials on similar topics such as graphics in R, ggplot2, and lines is shown below.

On this page you have learned how to change the cell colors in a heatmap that shows ranges of numerical values in R. In case you have additional questions, donâ€™t hesitate to let me know in the comments.

Subscribe to the Statistics Globe Newsletter