Artikel
11
June
How to Annotate a Graph with Matplotlib and Python
The Matplotlib package is great for visualizing data. One of its many features is the ability to annotate points on your graph. You can use annotations to explain why a particular data point is significant or interesting.
If you haven’t used Matplotlib before, you should check out my introductory article, Matplotlib – An Intro to Creating Graphs with Python or read the official documentation.
Let’s get started!
Installing Matplotlib
If you don’t have Matplotlib on your computer, you must install it. Fortunately, you can use pip, the Python package manager utility that comes with Python.
Open up your terminal or command prompt and run the following command:
python -m pip install matplotlib
Pip will now install Matplotlib and any dependencies that Matplotlib needs to work properly. Assuming that Matplotlib installs successfully, you are good to go!
Annotating Points on a Graph
Matplotlib comes with a handy annotate()method that you can use. As with most of Matplotlib’s methods, annotate()can take quite a few different parameters.
For this example, you will be using the following parameters:
- text – The label for the annotation
- xy – The x/y coordinate of the point of interest
- arrowprops – A dictionary of arrow properties
- xytext – Where to place the text for the annotation
Now that you know what you’re doing, open up your favorite Python IDE or text editor and create a new Python file. Then enter the following code:
import matplotlib.pylab as plt
import numpy as np
def annotated():
fig = plt.figure(figsize=(8, 6))
numbers = list(range(10))
plt.plot(numbers, np.exp(numbers))
plt.title("Annotating an Exponential Plot using plt.annotate()")
plt.xlabel("x-axis")
plt.ylabel("y-axis")
plt.annotate("Point 1", xy=(6, 400),
arrowprops=dict(arrowstyle="->"),
xytext=(4, 600))
plt.annotate("Point 2", xy=(7, 1150),
arrowprops=dict(arrowstyle="->",
connectionstyle="arc3,rad=-.2"),
xytext=(4.5, 2000))
plt.annotate("Point 3", xy=(8, 3000),
arrowprops=dict(arrowstyle="->",
connectionstyle="angle,angleA=90,angleB=0"),
xytext=(8.5, 2200))
plt.show()
if __name__ == "__main__":
annotated()
Here, you are creating a simple line graph. You want to annotate three points on the graph. The arrowprops define the arrowstyleand, in the latter two points, the connectionstyle. These properties tell Matplotlib what type of arrow to use and whether it should be connected to the text as a straight line, an arc, or a 90-degree turn.
When you run this code, you will see the following graph:

You can see how the different points are located and how the arrowprops lines are changed. You should check out the full documentation to learn all the details about the arrows and annotations.
Wrapping Up
Annotating your graph is a great way to make your plots more informative. Matplotlib allows you to add many different labels to your plots, and annotating the interesting data points is quite nice.
You should spend some time experimenting with annotations and learning all the different parameters it takes to fully understand this useful feature.
What's your reaction ?
Follow us on Social Media
Some Categories
Recent posts
February 11, 2026
Nettoloon parttimers omhoog in 2026 en toch lagere koopkracht: hoe zit dat?
February 07, 2026
Rijkswaterstaat schrapt honderden zzp-contracten door strengere DBA-handhaving
February 04, 2026
Inkomstenbelasting 2026: dit verandert er voor ondernemers
February 03, 2026
Inkomstenbelasting 2026: dit verandert er voor ondernemers
January 30, 2026
Dit wordt het minimumloon vanaf 1 januari 2026 per uur en per maand
Inloggen
Registreren
Comments (0)
No reviews found
Add Comment