11.9 C
London
Tuesday, June 3, 2025
HomeTidyverse in Rggplot2 in RHow to Create a Grouped Boxplot in R Using ggplot2

How to Create a Grouped Boxplot in R Using ggplot2

Related stories

Learn About Opening an Automobile Repair Shop in India

Starting a car repair shop is quite a good...

Unlocking the Power: Embracing the Benefits of Tax-Free Investing

  Unlocking the Power: Embracing the Benefits of Tax-Free Investing For...

Income Splitting in Canada for 2023

  Income Splitting in Canada for 2023 The federal government’s expanded...

Can I Deduct Home Office Expenses on my Tax Return 2023?

Can I Deduct Home Office Expenses on my Tax...

Canadian Tax – Personal Tax Deadline 2022

  Canadian Tax – Personal Tax Deadline 2022 Resources and Tools...

Boxplots are useful for visualizing the five-number summary of a dataset, which includes:

  • The minimum
  • The first quartile
  • The median
  • The third quartile
  • The maximum

Related: A Gentle Introduction to Boxplots

Fortunately it’s easy to create boxplots in R using the visualization library ggplot2.

It’s also to create boxplots grouped by a particular variable in a dataset. For example, suppose we have the following dataset that displays the increase in efficiency for 150 basketball players on three different teams based on two different training programs:

#define variables
team=rep(c('A', 'B', 'C'), each=50)
program=rep(c('low', 'high'), each=25)
increase=seq(1:150)+sample(1:100, 100, replace=TRUE)

#create dataset using variables
data=data.frame(team, program, increase)

#view first six rows of dataset 
head(data)

  team program increase
1    A     low       62
2    A     low       37
3    A     low       49
4    A     low       60
5    A     low       64
6    A     low      105

We can use the following code to create boxplots that display the increase in efficiency for players, grouped by team and filled in based on the training program:

library(ggplot2)

ggplot(data, aes(x=team, y=increase, fill=program)) + 
  geom_boxplot()

Grouped boxplot in R

We can use similar syntax to create boxplots that display the increase in efficiency for players, grouped by training program and filled in based on the team:

library(ggplot2)

ggplot(data, aes(x=program, y=increase, fill=team)) + 
  geom_boxplot()

Grouped boxplot in R

A similar alternative is to use faceting, in which each subgroup is shown in its own panel:

library(ggplot2)

ggplot(data, aes(x=team, y=increase, fill=program)) + 
  geom_boxplot() +
  facet_wrap(~program)

Boxplots in R grouped by facet

Depending on the data you’re working with, faceting may or may not make sense for your visualization needs.

Additional Resources

How to Remove Outliers in Boxplots in R
How to Create Side-by-Side Plots in ggplot2
A Complete Guide to the Best ggplot2 Themes

Subscribe

- Never miss a story with notifications

- Gain full access to our premium content

- Browse free from up to 5 devices at once

Latest stories