2011-04-20 130 views
67

要將圖例添加到matplotlib圖中,只需運行legend()刪除matplotlib圖中的圖例

如何到刪除從情節的傳說?

(我來到這個最接近的是爲了清空從數據的圖例運行legend([]),但還有在右上角一個醜陋的白色矩形。)

回答

63

matplotlib v1.4.0rc4開始,remove方法已被添加到圖例對象中。

用法:

ax.legend_.remove() 

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

here爲這個地方介紹的承諾。

15

必須添加以下行代碼:

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

GCA()返回當前軸手柄,並且具有財產legend_

+0

謝謝,這似乎工作。 (但是多麼可怕的界面......)我建議用'show()'替換'draw()'。或者在使用'draw'方面有特別的優勢? – 2011-04-20 19:10:03

+0

如果圖更新是程序的最後一個命令,則show()將會正常。 'draw()'很好,因爲它是一般的圖形更新命令。您可能想要在更新圖形後提示用戶在終端中輸入一些內容,這不能通過阻塞'show()'來完成。 – EOL 2011-04-20 20:19:32

+0

沒錯。感謝你的回答。現在我同意'draw'更合適(但我總是使用'show'來更新我的圖表......)。 – 2011-04-20 20:31:22

60

你可以用圖例的set_visible方法:

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

這是基於提供給我的響應類似的問題一個答案前段時間here

(用於回答Jouni謝謝 - 對不起,我無法標記問題的回答......或許有人可以爲我做這件事嗎?)

+3

這隻隱藏了這個圖例,它實際上並沒有移除這個對象,對吧? – vlsd 2013-09-28 20:25:24

41

如果要繪製Pandas數據框並想要刪除圖例,請將legend = None作爲參數添加到plot命令。

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()