Add Arrow to Plot in R (2 Examples)


This article shows how to draw a graphic with an arrow in the R programming language.

The tutorial consists of these contents:

Let’s dive into it:


Example Data

The first step is to create some example data:

data <- data.frame(x = 1:5,         # Construct example data
                   y = 5:1)
data                                # Print example data


table 1 data frame add arrow


As you can see based on Table 1, our example data is a data frame comprising five rows and two integer columns with the names “x” and “y”.


Example 1: Draw Base R Plot with Arrow Using arrows() Function

Example 1 illustrates how to add an arrow to a Base R plot.

Consider the following example plot:

plot(data$x,                        # Draw Base R plot without arrow 


r graph figure 1 add arrow


As shown in Figure 1, we have created a scatterplot without an arrow with the previous R syntax.

If we would like to add an arrow to this plot, we could apply the arrow function as shown below:

plot(data$x,                        # Draw Base R plot with arrow
arrows(x0 = 1,
       y0 = 2,
       x1 = 3,
       y1 = 4)


r graph figure 2 add arrow


In Figure 2 it is shown that we have created a scatterplot with arrow by running the previous R programming code.


Example 2: Draw ggplot2 Plot with Arrow Using geom_segment() Function

In this section, I’ll illustrate how to draw a ggplot2 plot with an arrow.

First, we have to install and load the ggplot2 package:

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

Next, we can draw a ggplot2 scatterplot without arrow as shown below:

ggp <- ggplot(data, aes(x, y)) +    # Draw ggplot2 plot without arrow


r graph figure 3 add arrow


Note that the previous R code has created a plot object called ggp.

In the next step, we can use this plot object as basement for the geom_segment function. Within this function, we can specify the coordinates of the arrow that we want to create:

ggp +                               # Draw ggplot2 plot with arrow
  geom_segment(aes(x = 1,
                   y = 2,
                   xend = 3,
                   yend = 4),
               arrow = arrow(length = unit(0.5, "cm")))


r graph figure 4 add arrow


As shown in Figure 4, the previous R syntax has drawn a ggplot2 plot with an arrow.


Video & Further Resources

If you need further instructions on the R programming codes of this article, I recommend watching the following video on my YouTube channel. In the video, I’m explaining the content of this tutorial:



In addition, you may want to have a look at some of the other tutorials on this website.


In this R tutorial you have learned how to add a nice and beautiful arrow to a graph.

Please note that it would be possible to modify the attributes of these arrows such as the shape, size, color, and line type. Have a look at the corresponding help documentations for more info.

If you have additional questions, tell me about it in the comments section below.


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.