如何在 Matplotlib 中刪除圖例

Suraj Joshi 2023年1月30日 2020年6月9日
  1. matplotlib.axes.Axes.get_legend().remove()
  2. matplotlib.axes.Axes.get_legend().set_visible()
  3. matplotlib.axes.Axes.plot() 方法中的 label=_nolegend_ 引數
  4. axis 物件的 legend_ 屬性設定為 None
如何在 Matplotlib 中刪除圖例

我們可以使用圖例物件的 remove()set_visible() 方法從 Matplotlib 中的圖形中刪除圖例。我們還可以通過以下方式從 Matplotlib 中的圖形中刪除圖例:將 plot() 方法中的 label 設定為 _nolegend_,將 axes.legend 設定為 None 以及將 figure.legends 設定為空列表。

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

我們可以使用 matplotlib.axes.Axes.get_legend().remove() 方法從 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().remove()

plt.show() 

輸出:

使用 remove 方法刪除 Matplotlib 中的圖例

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

如果我們將 False 作為引數傳遞給 matplotlib.axes.Axes.get_legend().set_visible() 方法,則可以從 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()

輸出:

使用 set_visible 方法刪除 Matplotlib 中的圖例

此方法實際上將圖例設定為不可見,但不會刪除圖例。

matplotlib.axes.Axes.plot() 方法中的 label=_nolegend_ 引數

在 matplotlib.axes.Axes.plot()方法中將 label=_nolegend_ 作為引數傳遞也會從 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()

輸出:

使用圖例引數刪除 Matplotlib 中的圖例

axis 物件的 legend_ 屬性設定為 None

axis 物件的 legend_ 屬性設定為 None 可以從 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()

輸出:

在 Matplotlib 中刪除圖例,將軸物件的圖例屬性設定為 None

Author: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

相關文章 - Matplotlib Legend