You can modify different properties of a plot — color, size, label, title and so on — when working with Matplotlib.

In this article, you'll learn what a legend is in Matplotlib, and how to use some of its parameters to make your plots more relatable.

You'll then learn how to change the font size of a Matplotlib legend using:

  • The fontsize parameter.
  • The prop parameter.

What Is a Legend in Matplotlib?

A legend is a Matplotlib function used to describe elements that make up a graph.

Consider the graph below:

import matplotlib.pyplot as plt

# create a plot
x = [1, 4, 6, 8]
y = [2, 5, 6, 2]

plt.plot(x, y)

plt.legend(["Data"], loc="upper right")

plt.show()
matplotlib-legend
matplotlib graph with a legend

In the graph above, we described the plot using a legend. A description of "Data" was assigned to the legend, and was placed in the upper right corner of the graph using the upper right value of the loc parameter.

With the legend function, you can assign different descriptions to each line of a graph.

Here's an example:

import matplotlib.pyplot as plt

age = [1, 4, 6, 8]
number = [4, 5, 6, 2, 1]

plt.plot(age)
plt.plot(number)

plt.legend(["age", "number"], loc ="upper right")

plt.show()
matplotlib-legend
two line graph with different legend descriptions

In the graph above, we've used the legend function to describe each line in the plot.

This makes it easier for anyone viewing the graph to know that the blue line denotes age while the orange line denotes number in the graph.

You can change the position of the legend using the following values of the loc parameter:

  • best
  • upper right
  • upper left
  • lower left
  • lower right
  • right
  • center left
  • center right
  • lower center
  • upper center
  • center

How To Change Legend Font Size in Matplotlib Using the fontsize Parameter

You can change the font size of a Matplotlib legend by specifying a font size value for the fontsize parameter.

Here's what the default legend font size looks like:

import matplotlib.pyplot as plt

age = [1, 4, 6, 8]
number = [4, 5, 6, 2, 1]

plt.plot(age)
plt.plot(number)

plt.legend(["age", "number"], loc ="upper right")

plt.show()
matplotlib-legend-1
matplotlib graph with default legend font size

Here's another code example with the fontsize parameter included:

import matplotlib.pyplot as plt

age = [1, 4, 6, 8]
number = [4, 5, 6, 2, 1]

plt.plot(age)
plt.plot(number)

plt.legend(["age", "number"], fontsize="20", loc ="upper left")

plt.show()

Here's what the legend would look like:

matplotlib-legend-fontsize-parameter-1
matplotlib legend size using fontsize parameter

We assigned a font size of 20 to the fontsize parameter to get the legend size in the image above: fontsize="20".

You'd also notice the legend was placed at the upper left corner of the graph using the loc parameter.

How To Change Legend Font Size in Matplotlib Using the prop Parameter

Another way of changing the font size of a legend is by using the legend function's prop parameter.

Here's how to use it:

import matplotlib.pyplot as plt

age = [1, 4, 6, 8]
number = [4, 5, 6, 2, 1]

plt.plot(age)
plt.plot(number)

plt.legend(["age", "number"], prop = { "size": 20 }, loc ="upper left")

plt.show()

Using the prop parameter, we specified a font size of 20: prop = { "size": 20 }.

Here's the output:

matplotlib-legend-fontsize-parameter-2
matplotlib legend size using prop parameter

Summary

In this article, we talked about the legend function in Matplotlib. It can be used to describe the elements that maker up a graph.

We first saw what a legend is in Matplotlib, and some examples to show its basic usage and parameters.

We then saw how to use the fontsize and prop parameters to change the font size of a Matplotlib legend.

Happy coding!