Matplotlib で凡例を削除する方法
Suraj Joshi
2023年1月30日
Matplotlib
Matplotlib Legend
-
matplotlib.axes.Axes.get_legend().remove()メソッド -
matplotlib.axes.Axes.get_legend().set_visible() -
matplotlib.axes.Axes.plot()メソッドのlabel=nolegend引数 -
Axes オブジェクトの
legend_属性をNoneに設定する
legend オブジェクトの remove() メソッドと set_visible() メソッドを使用して、Matplotlib の図から凡例を削除できます。また、plot() メソッドで label を _nolegend_ に、axes.legend を None に、figure.legends を空のリストに設定することで、Matplotlib の図から凡例を削除することもできます。
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()
出力:

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()
出力:

このメソッドは、実際には凡例を非表示に設定しますが、凡例を削除しません。
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()
出力:

Axes オブジェクトの legend_ 属性を None に設定する
Axes オブジェクトの 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()
出力:

チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe
著者: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn