如何删除 Matplotlib 中的图例?
Matplotlib是Python中最流行的数据可视化库之一。使用这个matplotlib 库,如果我们想要可视化多个变量,我们可能想要解释每个变量代表什么。为此,matplotlib 库中有一个名为legend()的函数。这个图例是图表上的一个小区域,描述了每个变量代表什么。
为了去除图例,有四种方法。他们是 :
- 使用 .remove()
- 使用 .set_visible()
- 修复所需 Axes 对象的 legend_ 属性 = 无
- 使用 label=_nolegend_
方法 1:使用.remove()
示例 1:通过使用ax.get_legend().remove()方法,可以从 matplotlib 中的图形中删除图例。
Python3
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3, 3, 100)
y1 = np.power(x, 2)
y2 = np.power(x, 3)
fig, ax = plt.subplots()
ax.plot(x, y1, c = 'r',label = 'x^2')
ax.plot(x, y2, c = 'g',label = 'x^3')
leg = plt.legend()
ax.get_legend().remove()
plt.show()
Python3
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3, 3, 100)
y1 = np.power(x, 2)
y2 = np.power(x, 3)
fig, axs = plt.subplots(2, 1)
axs[0].plot(x, y1, c = 'r',label = 'x^2')
axs[1].plot(x, y2, c = 'g',label = 'x^3')
axs[0].legend(loc = 'upper left')
axs[1].legend(loc = 'upper left')
axs[1].get_legend().remove()
plt.show()
Python3
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3, 3, 1000)
y1 = np.sin(x)
y2 = np.cos(x)
fig, ax = plt.subplots()
ax.plot(x, y1,c = 'r',label = 'Sine')
ax.plot(x, y2,c = 'g',label = 'Cosine')
leg = plt.legend()
ax.get_legend().set_visible(False)
plt.show()
Python3
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3,3,1000)
y1 = np.sin(x)
y2 = np.cos(x)
fig, axs = plt.subplots(2,1)
axs[0].plot(x,y1,c='r',label = 'Sine')
axs[1].plot(x,y2,c='g',label = 'Cosine')
axs[0].legend(loc='upper left')
axs[1].legend(loc='upper left')
axs[1].get_legend().set_visible(False)
plt.show()
Python3
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3, 3, 1000)
y1 = np.sin(x)
y2 = np.cos(x)
fig, ax = plt.subplots()
ax.plot(x, y1,c = 'r',label = 'Sine')
ax.plot(x, y2,c = 'g',label = 'Cosine')
leg = plt.legend()
ax.legend_ = None
plt.show()
Python3
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3, 3, 1000)
y1 = np.sin(x)
y2 = np.cos(x)
fig, axs = plt.subplots(2, 1)
axs[0].plot(x, y1, c = 'r',label = 'Sine')
axs[1].plot(x, y2,c = 'g',label = 'Cosine')
axs[0].legend(loc = 'upper left')
axs[1].legend(loc = 'upper left')
axs[0].legend_ = None
plt.show()
Python3
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3, 3, 100)
y1 = np.power(x, 2)
y2 = np.power(x, 3)
fig, ax = plt.subplots()
ax.plot(x, y1, c = 'r',label = '_nolegend_')
ax.plot(x, y2,c = 'g',label = '_nolegend_')
leg = plt.legend()
plt.show()
Python3
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3,3,100)
y1 = np.power(x,2)
y2 = np.power(x,3)
fig, axs = plt.subplots(2,1)
axs[0].plot(x,y1,c='r',label = '_nolegend_')
axs[1].plot(x,y2,c='g',label = 'x^3')
axs[0].legend(loc='upper left')
axs[1].legend(loc='upper left')
plt.show()
输出 :
我们可以看到上图中没有图例。
示例 2:多个子图:
在有多个子图的情况下,我们可以提及需要删除图例的子图对象。在这里,我们编写了 axs[1].get_legend().remove()这意味着我们正在专门删除第二个子图的图例。
蟒蛇3
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3, 3, 100)
y1 = np.power(x, 2)
y2 = np.power(x, 3)
fig, axs = plt.subplots(2, 1)
axs[0].plot(x, y1, c = 'r',label = 'x^2')
axs[1].plot(x, y2, c = 'g',label = 'x^3')
axs[0].legend(loc = 'upper left')
axs[1].legend(loc = 'upper left')
axs[1].get_legend().remove()
plt.show()
输出 :
在上图中,我们专门删除了第二个子图的图例。第一个子情节仍然会有一个图例。
方法 2:使用set_visible()
示例 1:通过使用ax.get_legend().set_visible(False)方法,可以从 matplotlib 中的图形中删除图例。
蟒蛇3
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3, 3, 1000)
y1 = np.sin(x)
y2 = np.cos(x)
fig, ax = plt.subplots()
ax.plot(x, y1,c = 'r',label = 'Sine')
ax.plot(x, y2,c = 'g',label = 'Cosine')
leg = plt.legend()
ax.get_legend().set_visible(False)
plt.show()
输出 :
我们可以看到上图中没有图例。
示例-2。不止一个子图:
如果有多个子图,我们可以提及需要删除图例的子图对象。在这里,我们编写了 axs[1].get_legend().set_visible(False) ,这意味着我们要专门删除第二个子图的图例。
蟒蛇3
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3,3,1000)
y1 = np.sin(x)
y2 = np.cos(x)
fig, axs = plt.subplots(2,1)
axs[0].plot(x,y1,c='r',label = 'Sine')
axs[1].plot(x,y2,c='g',label = 'Cosine')
axs[0].legend(loc='upper left')
axs[1].legend(loc='upper left')
axs[1].get_legend().set_visible(False)
plt.show()
输出 :
在上图中,我们专门删除了第二个子图的图例。第一个子情节仍然会有图例。
方法 3:修复所需 Axes 对象的 legend_ 属性 = None :
示例 1:通过使用ax.legend_ = None ,可以从 matplotlib 中的图形中删除图例。
蟒蛇3
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3, 3, 1000)
y1 = np.sin(x)
y2 = np.cos(x)
fig, ax = plt.subplots()
ax.plot(x, y1,c = 'r',label = 'Sine')
ax.plot(x, y2,c = 'g',label = 'Cosine')
leg = plt.legend()
ax.legend_ = None
plt.show()
输出:
我们可以看到上图中没有图例。
示例 2:多个子图:
在有多个子图的情况下,我们可以提及要删除图例的所需子图对象。在这里,我们写了 axs[0].legend_ = None这意味着我们要专门删除第一个子图的图例。the
蟒蛇3
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3, 3, 1000)
y1 = np.sin(x)
y2 = np.cos(x)
fig, axs = plt.subplots(2, 1)
axs[0].plot(x, y1, c = 'r',label = 'Sine')
axs[1].plot(x, y2,c = 'g',label = 'Cosine')
axs[0].legend(loc = 'upper left')
axs[1].legend(loc = 'upper left')
axs[0].legend_ = None
plt.show()
输出:
在上图中,我们专门删除了第一个子图的图例。第二个子情节仍然会有图例。
方法四:使用label = _legend_
示例 1:通过在 ax.plot() 中发送label = '_nolegend_'参数,可以从 matplotlib 中的图形中删除图例。
蟒蛇3
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3, 3, 100)
y1 = np.power(x, 2)
y2 = np.power(x, 3)
fig, ax = plt.subplots()
ax.plot(x, y1, c = 'r',label = '_nolegend_')
ax.plot(x, y2,c = 'g',label = '_nolegend_')
leg = plt.legend()
plt.show()
输出:
示例-2。不止一个子图:
如果有多个子图,我们可以提及需要删除图例的子图对象。在这里,我们写了 axs[0].plot(x,y1,c='r',label = '_nolegend_')这意味着我们要专门删除第一个子图的图例。
蟒蛇3
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3,3,100)
y1 = np.power(x,2)
y2 = np.power(x,3)
fig, axs = plt.subplots(2,1)
axs[0].plot(x,y1,c='r',label = '_nolegend_')
axs[1].plot(x,y2,c='g',label = 'x^3')
axs[0].legend(loc='upper left')
axs[1].legend(loc='upper left')
plt.show()
输出 :
在上图中,我们专门删除了第一个子图的图例。第二个子情节仍然会有图例。