Thursday, October 2, 2025
HomeLanguagesHow to Annotate Matplotlib Scatter Plots?

How to Annotate Matplotlib Scatter Plots?

A scatter plot uses dots to represent values for two different numeric variables. In Python, we have a library matplotlib in which there is a function called scatter that helps us to create Scatter Plots. Here, we will use matplotlib.pyplot.scatter() method to plot.

Syntax : matplotlib.pyplot.scatter(x,y)

Parameters:

  • x and y are float values and are the necessary parameters to create a scatter plot
  • marker : MarkerStyle, default: rcParams[“scatter.marker”] (default: ‘o’)
  • cmap : cmapstr or Colormap, default: rcParams[“image.cmap”] (default: ‘viridis’)
  • linewidths : float or array-like, default: rcParams[“lines.linewidth”] (default: 1.5)
  • alpha : float, default: None → represents the transparency

Annotation of matplotlib means that we want to place a piece of text next to the scatter. There can be two cases depending on the number of the points we have to annotate :

  1. Single point annotation
  2. All points annotation

Single Point annotation

In single-point annotation we can use matplotlib.pyplot.text and mention the x coordinate of the scatter point and y coordinate + some factor so that text can be distinctly visible from the plot, and then we have to mention the text.

Syntax: matplotlib.pyplot.text( x, y, s)

Parameters:

  • x, y : scalars — The position to place the text. By default, this is in data coordinates. The coordinate system can be changed using the transform parameter.
  • s : str — The text.
  • fontsize — It is an optional parameter used to set the size of the font to be displayed.

Approach:

  1. Import libraries.
  2. Create data.
  3. Make scatter plot.
  4. Apply plt.text() method.

Implementation:

Python3




# Importing libraries
import matplotlib.pyplot as plt
  
# Preparing dataset
x = [x for x in range(10)]
y = [5, 4, 4, 8, 5, 6, 8, 7, 1, 3]
  
# plotting scatter plot
plt.scatter(x, y)
  
# annotation of the third point
plt.text(2,4.2,"third")
plt.show()


Output:

All points annotation

If we want to annotate all points in the scatter plot then matplotlib.pyplot has an inbuilt function annotate which takes the text, x, and y coordinates of the point.

Syntax: matplotlib.pyplot.annotate( text, xy )

Parameters:

  • text : str — The text of the annotation. s is a deprecated synonym for this parameter.
  • xy : (float, float) — The point (x, y) to annotate. The coordinate system is determined by xy coordinates.

Approach:

  1. Import libraries.
  2. Create data.
  3. Store all the annotations in a list in order with the sequence of the points to be displayed.
  4. Draw the scatter plot.
  5. Using a for loop annotate each point.

Implementation:

Python3




# Importing libraries
import matplotlib.pyplot as plt
  
# Preparing dataset
x = [x for x in range(10)]
y = [5, 2, 4, 8, 5, 6, 8, 7, 1, 3]
text = ["first", "second", "third", "fourth", "fifth",
        "sixth", "seventh", "eighth", "ninth", "tenth"]
  
# plotting scatter plot
plt.scatter(x, y)
  
# Loop for annotation of all points
for i in range(len(x)):
    plt.annotate(text[i], (x[i], y[i] + 0.2))
  
# adjusting the scale of the axes
plt.xlim((-1, 10))
plt.ylim((0, 10))
plt.show()


Output:

RELATED ARTICLES

Most Popular

Dominic
32331 POSTS0 COMMENTS
Milvus
85 POSTS0 COMMENTS
Nango Kala
6703 POSTS0 COMMENTS
Nicole Veronica
11867 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11926 POSTS0 COMMENTS
Shaida Kate Naidoo
6818 POSTS0 COMMENTS
Ted Musemwa
7079 POSTS0 COMMENTS
Thapelo Manthata
6775 POSTS0 COMMENTS
Umr Jansen
6776 POSTS0 COMMENTS