Reorder Facets in ggplot2 Plot in R (Example)


This tutorial illustrates how to fix the ordering of facets in a ggplot2 graph in R.

The content of the tutorial is structured as follows:

Here’s the step-by-step process…


Example Data, Packages & Basic Graph

Let’s first create some example data in R:

data <- data.frame(x1 = 1:4,                  # Create example data
                   x2 = 4:1,
                   group = LETTERS[1:4])
data                                          # Show data in console
#   x1 x2 group
# 1  1  4     A
# 2  2  3     B
# 3  3  2     C
# 4  4  1     D

As you can see based on the previous output of the RStudio console, our example data has two numeric columns and a grouping variable.

If we want to plot our data with the ggplot2 package, we also have to install and load ggplot2:

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

Next, we can draw a graphic of our data:

ggp <- ggplot(data, aes(x1, x2)) +            # Create facet plot with default order
  geom_point() +
ggp                                           # Draw facet plot


r graph figure 1 reorder facets ggplot2


Figure 1 shows the output of the previously shown syntax – A facet plot with facets in alphabetical order.


Example: Reordering Facets of Facet Plot Using relevel Function

In this Example, I’ll illustrate how to adjust the sorting of a ggplot2 facet plot in R. As a first step, we have to reorder the levels of our grouping variable using the relevel function:

data_new <- data                              # Replicate data
data_new$group <- factor(data_new$group,      # Reordering group factor levels
                         levels = c("B", "A", "C", "D"))

Now, we can draw our plot again:

ggp_new <- ggplot(data_new, aes(x1, x2)) +    # Create facet plot again
  geom_point() +
ggp_new                                       # Print new facet plot


r graph figure 2 reorder facets ggplot2


Figure 2 shows the output of the previous R programming syntax – A reordered facet plot created with the ggplot2 add-on package.


Video & Further Resources

Do you need further information on the examples of this article? Then you could watch the following video that I have published on my YouTube channel. In the video, I’m explaining the contents of this article.



In addition, I can recommend reading the other articles of this website:


Summary: In this tutorial, I illustrated how to reorder facets in a ggplot2 facet plot in the R programming language.

In this tutorial, we have used the facet_plot function. However, please note that it would be possible to use a similar R syntax when using the related facet_wrap function.

If you have further questions, let me know in the comments.


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.

2 Comments. Leave new

  • Hi! This still does not reorder the facets I have in my ggplot. fct_relevel does not seem to make a difference either. Are there any other ways?

    • Hi Rebecca,

      I apologize for the delayed reply. I was on a long holiday, so unfortunately I wasn’t able to get back to you earlier. Do you still need help with your syntax?



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.