Last Updated : 11 Apr, 2025
A legend helps explain the elements in a plot, and for adding a legend to a plot in Matplotlib, we use the legend() function. A border is added by default to the legend, but there may be some cases when you will prefer not having a border for a cleaner appearance. We will demonstrate how to do it quickly.
Example: Here is an example with legends. Python
import numpy as np
import matplotlib.pyplot as plt
# create data
x = np.linspace(1, 10, 1000)
y1 = np.sin(x)
y2 = np.cos(x)
# plot graph
plt.plot(x, y1)
plt.plot(x, y2)
# add legend
plt.legend(['Sine wave', 'Cos wave'])
plt.show()
Output
A plot with legends that have a border by default.
Method 1: Remove the Legend Border Usingframeon=False
To remove the border around the legend, you can use the frameon=False
parameter in the legend()
function. Here’s how we can do it:
import numpy as np
import matplotlib.pyplot as plt
# create data
x = np.linspace(1, 10, 1000)
y1 = np.sin(x)
y2 = np.cos(x)
# plot graph
plt.plot(x, y1)
plt.plot(x, y2)
# add legend and remove frame
plt.legend(['Sine wave', 'Cos wave'], frameon=False)
plt.show()
Output
Method 2: Remove the Legend Border Usinglegend.get_frame().set_alpha(0)
Another way to remove the border from the legend is by setting the alpha transparency of the legend's frame to zero. This effectively makes the frame invisible while keeping the legend content intact.
Here’s how we can do it:
Python
import numpy as np
import matplotlib.pyplot as plt
# create data
x = np.linspace(1, 10, 1000)
y1 = np.sin(x)
y2 = np.cos(x)
# plot graph
plt.plot(x, y1)
plt.plot(x, y2)
# add legend
leg = plt.legend(['Sine wave', 'Cos wave'])
# set opacity equal to zero i.e; transparent
leg.get_frame().set_alpha(0)
plt.show()
Output
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4