Matplotlib is one of the most popular Python packages used for data visualization. It is a cross-platform library for making 2D plots from data in arrays. Pyplot is a collection of command style functions that make matplotlib work like MATLAB. Each pyplot function makes some change to a figure: e.g., creates a figure, creates a plotting area in a figure, plots some lines in a plotting area, decorates the plot with labels, etc.
Matplotlib.pyplot.legend()
A legend is an area describing the elements of the graph. In the matplotlib library, there’s a function called legend() which is used to Place a legend on the axes.
The attribute Loc in legend()
is used to specify the location of the legend.Default value of loc is loc=”best” (upper left). The strings ‘upper left’, ‘upper right’, ‘lower left’, ‘lower right’ place the legend at the corresponding corner of the axes/figure.
The attribute bbox_to_anchor=(x, y) of legend() function is used to specify the coordinates of the legend, and the attribute ncol represents the number of columns that the legend has.It’s default value is 1.
Syntax:
matplotlib.pyplot.legend([“blue”, “green”], bbox_to_anchor=(0.75, 1.15), ncol=2)
The Following are some more attributes of function legend()
:
- shadow: [None or bool] Whether to draw a shadow behind the legend.It’s Default value is None.
- markerscale: [None or int or float] The relative size of legend markers compared with the originally drawn ones.The Default is None.
- numpoints: [None or int] The number of marker points in the legend when creating a legend entry for a Line2D (line).The Default is None.
- fontsize: The font size of the legend.If the value is numeric the size will be the absolute font size in points.
- facecolor: [None or “inherit” or color] The legend’s background color.
- edgecolor: [None or “inherit” or color] The legend’s background patch edge color.
Ways to use legend() function in Python –
Example 1:
import numpy as np
import matplotlib.pyplot as plt
x = [ 1 , 2 , 3 , 4 , 5 ]
y = [ 1 , 4 , 9 , 16 , 25 ]
plt.plot(x, y)
plt.legend([ 'single element' ])
plt.show()
|
Output :

Example 2:
import numpy as np
import matplotlib.pyplot as plt
y1 = [ 2 , 3 , 4.5 ]
y2 = [ 1 , 1.5 , 5 ]
plt.plot(y1)
plt.plot(y2)
plt.legend([ "blue" , "green" ], loc = "lower right" )
plt.show()
|
Output :

Example 3:
import numpy as np
import matplotlib.pyplot as plt
x = np.arange( 5 )
y1 = [ 1 , 2 , 3 , 4 , 5 ]
y2 = [ 1 , 4 , 9 , 16 , 25 ]
plt.plot(x, y1, label = 'Numbers' )
plt.plot(x, y2, label = 'Square of numbers' )
plt.legend()
plt.show()
|
Output :

Example 4:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace( 0 , 10 , 1000 )
fig, ax = plt.subplots()
ax.plot(x, np.sin(x), '--b' , label = 'Sine' )
ax.plot(x, np.cos(x), c = 'r' , label = 'Cosine' )
ax.axis( 'equal' )
leg = ax.legend(loc = "lower left" );
|
Output:

Example 5:
import numpy as np
import matplotlib.pyplot as plt
x = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ]
y1 = [ 0 , 3 , 6 , 9 , 12 , 15 , 18 , 21 , 24 ]
y2 = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ]
plt.plot(y1, label = "y = x" )
plt.plot(y2, label = "y = 3x" )
plt.legend(bbox_to_anchor = ( 0.75 , 1.15 ), ncol = 2 )
plt.show()
|
Output:
