2012-12-09 53 views
4

我在matplotlib中有一個陰謀,它有很多行。我有一個傳說,因此這是相當廣泛的,我使用下面的代碼放在它旁邊,我的劇情:如何查看matplotlib旁邊的圖例?

fontP = FontProperties() 
fontP.set_size('small') 
plt.legend(variablelist, loc=0, prop = fontP, bbox_to_anchor=(1.0, 1.0)) 
plt.savefig(filename+'.png') 

結果如下: enter image description here

正如你可以看到但是,在傳說被切斷了在右邊。有沒有一種方法可以在圖像的右側創建更多空間,以便我可以看到完整的圖例?

歡迎所有提示!

回覆@mmgp我在下面貼出下面的代碼。正如你可以通過他的回答看到的,我忘記了將bbox_inches ='tight'添加到savefig部分。因此,對於未來的讀者有一個完全工作的代碼,我剛添加的bbox_inches =「緊」在下面的代碼,這使得它很好地工作.. :):

from random import random 
import matplotlib.pyplot as plt 
from matplotlib.font_manager import FontProperties 

mylist = [] 
for a in range(10): 
    mylist.append([]) 
    for b in range(10): 
     mylist[a].append(random()) 

x = range(len(mylist)) 
for enum, i in enumerate(mylist): 
    plt.plot(x, mylist[enum], label='label_'+str(enum)) 

plt.grid(b=True) 
fontP = FontProperties() 
fontP.set_size('small') 

variablesList = [] 
for i in range(10): 
    variablesList.append('label_'+str(i)) 

legenda = plt.legend(variablesList, loc=0, prop = fontP, bbox_to_anchor=(1.0, 1.0)) 
plt.savefig('testplot.png', bbox_extra_artists=[legenda], bbox_inches='tight') 
+0

你試過不同的圖大小嗎? – arynaq

+0

@ user948652 - 是的,我還添加了以下內容:plt.figure(figsize =(15,15))。然而,這只是給了一個大的空的陰謀。我不知道這是爲什麼......:S – kramer65

+0

如果在'plt.savefig'中使用'bbox_extra_artists = [l]'作爲新參數,其中'l'是'plt.legend'的返回值,會發生什麼? – mmgp

回答

7

快到了,現在,只需添加一個新的參數savefigbbox_inches = 'tight'。這使得matplotlib找出你的情節所需的大小。

+0

太棒了!非常感謝!我還沒有贏得足夠的聲望點投票給你,所以這裏是我個人的大拇指=> b(b是豎起大拇指...... :)) – kramer65

+0

;)這很好。現在,如果您想要顯示該圖(在將其保存爲圖之前),則需要手動調整該圖的空間(這與圖形本身無關)。 – mmgp

+0

啊,謝謝你的提示。你會如此暗示我在正確的方向,以至於我將如何手動調整劇情的空間? – kramer65