Data Visualization

Matplotlib凡例マスター:削除と制御テクニック

Spread the love

凡例はデータの可視化に不可欠ですが、プロットを煩雑にすることもあります。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)のが最適です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です