Open In App
Related Articles

How to Place Legend Outside of the Plot in Matplotlib?

Improve Article
Improve
Save Article
Save
Like Article
Like

In this article, we will see how to put the legend outside the plot. 

Let’s discuss some concepts :

  • Matplotlib: Matplotlib is an amazing visualization library in Python for 2D plots of arrays. Matplotlib is a multi-platform data visualization library built on NumPy arrays and designed to work with the broader SciPy stack. It was introduced by John Hunter in the year 2002.
  • 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. The default value of loc is loc=  “best” (upper left).

Put the legend outside the plot

As, we can see that the above figure legends overlapped on the graph i.e; incomplete information. To solve this problem we need to place the legend outside the plot.

The syntax to set the legend outside is as given below:

matplotlib.pyplot.legend(bbox_to_anchor=(x,y))

Example 1: 

Matplotlib set legend upper-left outside the plot.

Python3




import matplotlib.pyplot as plt
import numpy as np
 
x = np.linspace(0, 10, 100)
 
plt.plot(x, np.sin(x), label="sin(x)")
plt.plot(x, np.cos(x), label="cos(x)")
 
 
plt.legend(bbox_to_anchor=(1.05, 1.0), loc='upper left')
plt.tight_layout()
plt.show()


Output :

 

Example 2: 

Matplotlib set legend center-left outside the plot.

Python3




import matplotlib.pyplot as plt
import numpy as np
 
x = np.linspace(0, 10, 100)
 
plt.plot(x, np.sin(x), label="sin(x)")
plt.plot(x, np.cos(x), label="cos(x)")
 
 
plt.legend(bbox_to_anchor = (1.25, 0.6), loc='center right')
plt.tight_layout()
plt.show()


Output:

 

Example 3: 

Matplotlib set legend lower-right outside the plot.

Python3




import matplotlib.pyplot as plt
import numpy as np
 
x = np.linspace(0, 10, 100)
 
plt.plot(x, np.sin(x), label="sin(x)")
plt.plot(x, np.cos(x), label="cos(x)")
 
 
plt.legend(bbox_to_anchor =(1.44,-0.10), loc='lower right')
plt.tight_layout()
plt.show()


Output:

 

Example 4: 

Matplotlib set legend upper-center outside the plot.

Python3




import matplotlib.pyplot as plt
import numpy as np
 
x = np.linspace(0, 10, 100)
 
plt.plot(x, np.sin(x), label="sin(x)")
plt.plot(x, np.cos(x), label="cos(x)")
 
 
plt.legend(bbox_to_anchor=(0.5, 1.2), loc='upper center')
plt.tight_layout()
plt.show()


Output :

 

 

Example 5: 

Matplotlib set legend lower-center outside the plot

Python3




import matplotlib.pyplot as plt
import numpy as np
 
x = np.linspace(0, 10, 100)
 
plt.plot(x, np.sin(x), label="sin(x)")
plt.plot(x, np.cos(x), label="cos(x)")
 
 
plt.legend(bbox_to_anchor =(0.5,-0.27), loc='lower center')
plt.tight_layout()
plt.show()


 

Example 6: 

Place with subplots Legend Outside of the Plot 

Python3




# importing packages
import numpy as np
import matplotlib.pyplot as plt
 
# create data
x = np.linspace(-5, 5, 1000)
colors=[['c','g'], ['y','r']]
 
# make subplot and plots the graphs
fig, ax = plt.subplots(2, 2)
for i in range(2):
    ax[0][i].plot(x, np.sin(x+i),
                  color = colors[0][i],
                  label = "y=sin(x+{})".format(i))
     
    ax[1][i].plot(x, np.sin(x+i),
                  color = colors[1][i],
                  label = "y=sin(x+{})".format(i))
     
# set legend position
fig.legend(bbox_to_anchor=(1.3, 0.6))
 
# set spacing to subplots
fig.tight_layout() 
plt.show()


Output :


Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!

Last Updated : 26 Nov, 2022
Like Article
Save Article
Similar Reads
Related Tutorials