Set Origin of ggplot2 Plot Axes to Zero in R (Example)


In this tutorial you’ll learn how to force the axes of a ggplot2 plot to start at zero in the R programming language.

Table of contents:

If you want to learn more about these topics, keep reading.


Example Data, Add-On Packages & Basic Graphic

Consider the following example data:

data <- data.frame(x = 1:6,         # Create example data
                   y = 1:6)
data                                # Print example data
#   x y
# 1 1 1
# 2 2 2
# 3 3 3
# 4 4 4
# 5 5 5
# 6 6 6

Have a look at the previous output of the RStudio console. It shows that our example data has six rows and two numeric columns.

We also need to install and load the ggplot2 add-on package, if we want to use the corresponding functions and commands:

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

Now, we can draw a graph of our data as shown below.

ggp <- ggplot(data, aes(x, y)) +    # ggplot2 plot with default axis
ggp                                 # Draw default ggplot2 plot


r graph figure 1 set origin ggplot2 axes zero r


Figure 1 shows the output of the previous code: A ggplot2 scatterplot with default axis ranges. As you can see, the x- and y-axes do not start at zero.


Example: Set Origin of ggplot2 Plot Axes to Zero

This example explains how to force the origin of a ggplot2 graph axis to start at zero.

For this, we can use the scale_x_continuous and scale_y_continuous functions as shown below:

ggp +                               # Set origin of axes to zero
  scale_x_continuous(expand = c(0, 0), limits = c(0, 7)) +
  scale_y_continuous(expand = c(0, 0), limits = c(0, 7))


r graph figure 2 set origin ggplot2 axes zero r


As shown in Figure 2, the previous syntax created a ggplot2 graph with axis ranges starting at zero.

In this tutorial we have set the axis origins of a ggplot2 scatterplot to zero. However, please note that we could apply the same type of code to other graphics such as histograms, density plots, or boxplots.


Video & Further Resources

Do you need further information on the examples of this tutorial? Then you could watch the following video of my YouTube channel. I show the R programming code of this tutorial in the video.



Furthermore, I can recommend having a look at the related articles on this website. I have published numerous articles about similar topics such as plot axes, graphics in R, and ggplot2.


At this point you should have learned how to set the lower axis limit to zero in the R programming language. Don’t hesitate to tell me about it in the comments, in case 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.