Remove the Legend in Matplotlib

  1. matplotlib.axes.Axes.get_legend().remove()
  2. matplotlib.axes.Axes.get_legend().set_visible()
  3. label=nolegend Argument in matplotlib.axes.Axes.plot() Method
  4. Set legend_ Attribute of Axes Object to None

We could use remove() and set_visible() methods of the legend object to remove legend from a figure in Matplotlib. We can also remove legend from a figure in Matplotlib by setting the label to _nolegend_ in plot() method, axes.legend to None and figure.legends to empty list.

matplotlib.axes.Axes.get_legend().remove()

We can remove legend from figure in Matplotlib by using matplotlib.axes.Axes.get_legend().remove() method.

import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(-3,3,100)
y1=np.exp(x)
y2=3*x+2

fig, ax = plt.subplots(figsize=(8,6))

ax.plot(x, y1, c='r', label='expoential')
ax.plot(x, y2, c='g', label='Straight line')

leg = plt.legend()

ax.get_legend().remove()

plt.show() 

Output:

remove legend in Matplotlib using remove method

matplotlib.axes.Axes.get_legend().set_visible()

If we pass False as the argument to matplotlib.axes.Axes.get_legend().set_visible() method, we can remove legend from figure in Matplotlib.

import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(-3,3,100)
y1=np.exp(x)
y2=3*x+2

fig, ax = plt.subplots(figsize=(8,6))

ax.plot(x, y1, c='r', label='expoential')
ax.plot(x, y2, c='g', label='Straight line')

leg = plt.legend()

ax.get_legend().set_visible(False)

plt.show()

Output:

remove legend in Matplotlib using set_visible method

This method actually sets the legend invisible but not delete the legend.

label=nolegend Argument in matplotlib.axes.Axes.plot() Method

Passing label=_nolegend_ as an argument in matplotlib.axes.Axes.plot() method also removes legend from figure in Matplotlib.

import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(-3,3,100)
y1=np.exp(x)
y2=3*x+2

fig, ax = plt.subplots(figsize=(8,6))
leg = plt.legend()

ax.plot(x, y1, c='r', label='_nolegend_')
ax.plot(x, y2, c='g', label='_nolegend_')

plt.show()

Output:

remove legend in Matplotlib using legend argument

Set legend_ Attribute of Axes Object to None

Setting legend_ attribute of the Axes object to None removes legend from a figure in Matplotlib.

import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(-3,3,100)
y1=np.exp(x)
y2=3*x+2

fig, ax = plt.subplots(figsize=(8,6))
leg = plt.legend()

ax.plot(x, y1, c='r', label='expoential')
ax.plot(x, y2, c='g', label='Straight line')

plt.gca.legend_ =None

plt.show()

Output:

remove legend in Matplotlib setting legend attribute of axes object to None

Contribute
DelftStack is a collective effort contributed by software geeks like you. If you like the article and would like to contribute to DelftStack by writing paid articles, you can check the write for us page.

Related Article - Matplotlib Legend

  • Place Legend Outside the Plot in Matplotlib
  • Change the Line Width of Lines in Matplotlib Legend