Arrange Boxplot of Multiple Y-Variables for Groups of Continuous X in R (Example)


In this R tutorial you’ll learn how to split a continuous variable into boxplot-groups.

Table of contents:

Sound good? Let’s dive right in…


Example Data, Packages & Basic Graphic

The first step is to create some example data:

set.seed(354967)                     # Create example data frame
data <- data.frame(x = rnorm(100),
                   y = rnorm(100),
                   group = rep(LETTERS[1:4], each = 25))
head(data)                           # Head of example data frame


table 1 data frame r boxplot multiple y variables for groups continuous x


As you can see based on Table 1, the exemplifying data is a data frame consisting of three columns called “x”, “y”, and “group”. The variables x and y have the numeric data class and the variable group is a character.

Note that our data is in long format. In case your data is in wide format, you may transform it to long format first.

For the following R syntax, we also have to install and load the ggplot2 package:

install.packages("ggplot2")          # Install & load ggplot2

Now, we can draw the data as follows:

ggplot(data,                         # Draw ggplot2 boxplot by group
       aes(x = x,
           y = y,
           fill = group)) +


r graph figure 1 r boxplot multiple y variables for groups continuous x


The output of the previous R programming code is shown in Figure 1 – We have created a ggplot2 boxplot containing a separate box for each of our four groups.


Example: Split Continuous x-Variable into Boxplot Groups

The following R syntax shows how to separate a continuous x-variable in each box of a boxplot into multiple subgroups.

To split the continuous x-variable, we can use the cut_width function of the ggplot2 package.

Furthermore, we can assign each main group to its own facet using the facet_grid function. This helps to differentiate between the main groups.

Consider the following R code:

ggplot(data,                         # Draw facet_grid boxplot by split groups
       aes(x = cut_width(x, width = 0.5),
           y = y,
           fill = group)) +
  geom_boxplot() +
  facet_grid(. ~ group)


r graph figure 2 r boxplot multiple y variables for groups continuous x


After executing the previous R syntax the ggplot2 boxplot with four facets and several subgroups within each facet shown in Figure 2 has been plotted.

Note that the x-axis labels of this plot are a bit messed up. You may change that according to your needs using the scale_x_discrete function.


Video & Further Resources

I have recently released a video on the Statistics Globe YouTube channel, which demonstrates the examples of this page. You can find the video below:



In addition, you could have a look at the other tutorials on my homepage:


You have learned in this post how to divide a continuous variable into boxplot-groups in R programming. Please let me know in the comments below, if you have additional questions.


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. Required fields are marked *

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