凡例はデータの可視化に不可欠ですが、プロットを煩雑にすることもあります。Matplotlibでは、凡例を完全に削除したり、よりクリーンな視覚効果のために単に非表示にしたりするなど、凡例を管理するいくつかの方法が提供されています。このガイドでは、4つの効果的な手法について説明します。
目次
1. 凡例の直接削除
このアプローチでは、matplotlib.axes.Axes.get_legend().remove()
を使用して、凡例が作成された後に削除します。これは簡単で、痕跡を残しません。
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([1, 2, 3], [4, 5, 6], label='Line 1')
ax.plot([1, 2, 3], [7, 8, 9], label='Line 2')
legend = ax.legend() # 凡例を作成
legend.remove() # 削除
plt.show()
2. 凡例の非表示
matplotlib.axes.Axes.get_legend().set_visible(False)
はより多くの制御を提供します。凡例はメモリに残るので、後でset_visible(True)
を使用して表示できます。
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([1, 2, 3], [4, 5, 6], label='Line 1')
ax.plot([1, 2, 3], [7, 8, 9], label='Line 2')
legend = ax.legend()
legend.set_visible(False)
plt.show()
3. 凡例の生成を抑制する
最も効率的な方法は、凡例の生成を抑制することです。plot()
関数内でlabel='nolegend'
(または任意の未使用のラベル)を使用します。
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([1, 2, 3], [4, 5, 6], label='nolegend')
ax.plot([1, 2, 3], [7, 8, 9], label='nolegend')
plt.show()
4. 属性の割り当てによる凡例の削除
Axesオブジェクトのlegend_
属性をNone
に直接設定すると、既存の凡例が削除され、将来の凡例の作成も防止されます。
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([1, 2, 3], [4, 5, 6], label='Line 1')
ax.plot([1, 2, 3], [7, 8, 9], label='Line 2')
ax.legend_ = None
plt.show()
適切な方法の選択は、ニーズによって異なります。即時削除には、方法1と4が効率的です。再表示の可能性がある場合は、方法2が最適です。凡例が不要であることがわかっている場合は、作成を抑制する(方法3)のが最適です。