web-dev-qa-db-ja.com

matplotlibの図の凡例を削除します

Matplotlibプロットに凡例を追加するには、legend()を実行するだけです。

削除プロットの凡例の方法は?

(これに最も近づいたのは、データから凡例を空にするためにlegend([])を実行することです。しかし、右上隅にthatい白い長方形が残ります。)

120
Olivier Verdier

matplotlib v1.4.0rc4 の時点で、removeメソッドが凡例オブジェクトに追加されました。

使用法:

ax.get_legend().remove()

または

legend = ax.legend(...)
...
legend.remove()

これが導入されたコミットについては here をご覧ください。

148
naitsirhc

凡例のset_visibleメソッドを使用できます。

ax.legend().set_visible(False)
draw()

これは、私が少し前に持っていた同様の質問に答えて私に提供された答えに基づいています here

(その答えをありがとうJouni-質問に回答済みのマークを付けることができなかったのは残念です...おそらく、権限を持つ誰かが私のためにそうすることができますか?)

79
ERN

Pandasデータフレームをプロットし、凡例を削除する場合は、plotコマンドのパラメーターとしてlegend = Noneを追加します。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df2 = pd.DataFrame(np.random.randn(10, 5))
df2.plot(legend=None)
plt.show()
66
cast42

次のコード行を追加する必要があります。

ax = gca()
ax.legend_ = None
draw()

gca()は、現在のAxesハンドルを返し、そのプロパティlegend_を持ちます

17
fceruti

軸ではなく、図に追加して凡例を作成しました(matplotlib 2.2.2)。削除するには、図のlegends属性を空のリストに設定します。

import matplotlib.pyplot as plt

fig = plt.figure()
ax1 = fig.add_subplot(111)
ax2 = ax1.twinx()

ax1.plot(range(10), range(10, 20), label='line 1')
ax2.plot(range(10), range(30, 20, -1), label='line 2')

fig.legend()

fig.legends = []

plt.show()
1
boudewijn21

Figおよびaxプロットオブジェクトを使用していない場合は、次のようにします。

import matplotlib.pyplot as plt

# do plot specifics
plt.legend('')
plt.show()
1
Pelonomi Moiloa