To draw arrows in Matplotlib, you can use the matplotlib.pyplot.arrow function, which uses the following syntax:

**matplotlib.pyplot.arrow(x, y, dx, dy)**

where:

**x, y:**The x and y coordinates of the arrow base**dx, dy:**The length of the arrow along the x and y direction

This tutorial provides several examples of how to use this function in practice.

**Example 1: Draw a Single Arrow**

The following code shows how to draw a single arrow on a Matplotlib plot:

import matplotlib.pyplot as plt #define two arrays for plotting A = [3, 5, 5, 6, 7, 8] B = [12, 14, 17, 20, 22, 27] #create scatterplot, specifying marker size to be 40 plt.scatter(A, B, s=40) #add arrow to plot plt.arrow(x=4, y=18, dx=2, dy=5, width=.08) #display plot plt.show()

Note that we can set **dx=0** to create a vertical arrow and **dy=0** to create a horizontal arrow.

For example, here’s how to create a vertical arrrow:

import matplotlib.pyplot as plt #define two arrays for plotting A = [3, 5, 5, 6, 7, 8] B = [12, 14, 17, 20, 22, 27] #create scatterplot, specifying marker size to be 40 plt.scatter(A, B, s=40) #add arrow to plot plt.arrow(x=4, y=18, dx=0, dy=5, width=.08) #display plot plt.show()

**Example 2: Style an Arrow**

By default, an arrow in Matplotlib is blue with black edges but we can easily change this by using the **facecolor** and **edgecolor** arguments:

import matplotlib.pyplot as plt #define two arrays for plotting A = [3, 5, 5, 6, 7, 8] B = [12, 14, 17, 20, 22, 27] #create scatterplot, specifying marker size to be 40 plt.scatter(A, B, s=40) #add arrow to plot plt.arrow(x=4, y=18, dx=0, dy=5, width=.08, facecolor='red', edgecolor='none') #display plot plt.show()

You can find a complete list of styling properties that can be applied to arrows here.

**Example 3: Add Annotations to Arrows**

The following code shows how to add an annotation underneath an arrow on a Matplotlib plot:

import matplotlib.pyplot as plt #define two arrays for plotting A = [3, 5, 5, 6, 7, 8] B = [12, 14, 17, 20, 22, 27] #create scatterplot, specifying marker size to be 40 plt.scatter(A, B, s=40) #add arrow to plot plt.arrow(x=4, y=18, dx=0, dy=5, width=.08) #add annotation plt.annotate('General direction', xy = (3.4, 17)) #display plot plt.show()

**Additional Resources**

How to Plot Circles in Matplotlib (With Examples)

How to Draw Rectangles in Matplotlib (With Examples)