How to 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 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

Related Article - Matplotlib Legend

  • How to Change Legend Font Size in Matplotlib
  • How to Place Legend Outside of the Plot in Matplotlib
  • comments powered by Disqus