How to Change Background Color in ggplot2

When you change the background colors in ggplot, it will be more visually pleasing and attract more attention than the default ones.

p + theme(panel.background = element_rect(fill = 'white', color = 'blue'),
panel.grid.major = element_line(color = 'green', linetype = 'dotted'),
panel.grid.minor = element_line(color = 'green', size = 2))

Here are a few of the most popular themes, based on the below themes can automatically change the background colors.

How to Overlay Plots in R-Quick Guide with Example » finnstats

p + theme_bw() #white background and grey gridlines
p + theme_minimal() #no background annotations
p + theme_classic() #axis lines but no gridlines
p + theme_linedraw() #black lines around the plot 
p + theme_light() # light gray lines and axis (more attention towards the data)
p + theme_void() #Empty theme
p + theme_dark() #Dark background designed to make colours pop out

Approach 1: Change Background Color in ggplot2

Let’s start by loading the package and visualizing the ToothGrowth dataset.

library(ggplot2)
ToothGrowth$dose <- as.factor(ToothGrowth$dose)
head(ToothGrowth)
 len supp dose
1 4.2  VC 0.5
2 11.5 VC 0.5
3 7.3  VC 0.5
4 5.8  VC 0.5
5 6.4  VC 0.5
6 10.0 VC 0.5
p <- ggplot(ToothGrowth, aes(x=dose, y=len)) + geom_boxplot()
p

The following code can be used to alter the panel’s background color as well as the major and minor gridlines:

How to Plot Categorical Data in R-Quick Guide »

p + theme(panel.background = element_rect(fill = 'white', color = 'blue'),
panel.grid.major = element_line(color = 'green', linetype = 'dotted'),
panel.grid.minor = element_line(color = 'green', size = 2))

Approach 2: Change background colors based on Built-in Themes

The following code demonstrates how to use multiple built-in ggplot2 themes to change the background color of plots automatically.

Plot Differences in Two Measurements-Bland-Altman Plot in R »

p + theme_bw() #white background and grey gridlines
p + theme_minimal() #no background annotations
p + theme_classic() #axis lines but no gridlines
p + theme_linedraw() #black lines around the plot 

Plot Differences in Two Measurements-Bland-Altman Plot in R »

p + theme_light() # light gray lines and axis (more attention towards the data)
p + theme_void() #Empty theme
p + theme_dark() #Dark background designed to make colours pop out

The following R code shows how to change the background and grid lines of the plot panel

Dot Plots in R-Strip Charts for Small Sample Size »

p + theme(
panel.background = element_rect(fill = "lightcyan",
                                  colour = "lightcyan",
  panel.grid.major = element_line(size = 0.5, linetype = 'solid',
                                  colour = "white"),
  panel.grid.minor = element_line(size = 0.25, linetype = 'solid',
                                  colour = "white"))
p + theme(plot.background = element_rect(fill = "lightpink")) #Change the plot background-color

Adding text labels to ggplot2 Bar Chart »

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

3 − one =