2016-08-01 4 views
4

グラフの凡例内にmatplotlibラベルをクリアする方法はありますか? This postは凡例自体を削除する方法を説明していますが、ラベル自体は残っており、新しい図をプロットすると再び表示されます。私は、次のコードを試してみましたが、それは動作しません:凡例のmatplotlibラベルをクリアするには?

handles, labels = ax.get_legend_handles_labels() 
labels = [] 

編集:ここでは一例である

import matplotlib.pyplot as plt 

fig = plt.figure() 
ax = fig.gca() 
ax.scatter([1,2,3], [4,5,6], label = "a") 
legend = ax.legend() 
plt.show() 
legend.remove() 
handles, labels = ax.get_legend_handles_labels() 
print(labels) 

出力:["a"]

+0

これは、変数を再バインドするだけなので、そうではありません。それと 'x = 42; x = 'hello'; '何とか' '42 ''を' 'hello ''に変更します。 –

+0

あなたは[mcve]を投稿できますか? –

+0

例を追加しました。 – Alex

答えて

2

使用set_visible()方法:

import matplotlib.pyplot as plt 

fig = plt.figure() 
ax = fig.gca() 
ax.scatter([1,2,3], [4,5,6], label = "a") 
legend = ax.legend() 
for text in legend.texts: 
    if (text.get_text() == 'a'): text.set_text('b') # change label text 
    text.set_visible(False) # disable label 
plt.show() 

enter image description here

+0

ありがとう!凡例のlabels属性に直接アクセスする方法があるかどうか知っていますか?私はそれを手動でいくつかの値に設定することができればそれは最高のものです。 – Alex

+1

ここに似ています: 'for legend.texts:if(text.get_text()== 'a'):text.set_text( 'cc')' – Serenity

関連する問題