2012-09-13 241 views
29

我有這樣的代碼:如何設置Matplotlib軸圖例的字體大小?

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

fontP = FontProperties() 
fontP.set_size('xx-small') 
fig=plt.figure() 
ax1=fig.add_subplot(111) 
plot([1,2,3], label="test1") 
ax1.legend(loc=0, ncol=1, bbox_to_anchor=(0, 0, 1, 1), 
      prop = fontP,fancybox=True,shadow=False,title='LEGEND') 
plt.show() 

legend fontsize

它可以在劇情,在字體大小的設置不會影響圖例標題字體大小可以看出。

如何將圖例標題的字體大小設置爲較小的大小?

回答

41

這絕對是一個古老的問題,但也讓我很沮喪,沒有其他答案改變了傳說標題字體大小,而是改變了文本的其餘部分。所以,在將我的頭撞向matplotlib文檔一段時間後,我想出了這個問題。

legend = ax1.legend(loc=0, ncol=1, bbox_to_anchor=(0, 0, 1, 1), 
      prop = fontP,fancybox=True,shadow=False,title='LEGEND') 

plt.setp(legend.get_title(),fontsize='xx-small') 
14

我不知道如何將其設置爲一個單獨的情節,但我總是做全球:

plt.rc('legend',**{'fontsize':6}) 
5

我一般做這樣。一旦陰謀已經完成我這樣做

plt.legend(loc=0, numpoints=1) 
leg = plt.gca().get_legend() 
ltext = leg.get_texts() 
plt.setp(ltext, fontsize='small') 

我不知道這對你的作品

+0

在IPython的筆記本,我只是做' setp(gca()。get_legend()。get_texts(),fontsize ='small')'。 –

26

下面是如何更改圖例列表和/或圖例標題的字體大小:

legend=plt.legend(list,loc=(1.05,0.05), title=r'$\bf{Title}$') #Legend: list, location, Title (in bold) 
legend.get_title().set_fontsize('6') #legend 'Title' fontsize 
plt.setp(plt.gca().get_legend().get_texts(), fontsize='12') #legend 'list' fontsize 
+0

你能幫我合併你提出的代碼片段嗎?當我將這段代碼添加到我擁有的代碼中時,我看到一些錯誤。 具體做法是: 回溯(最近通話最後一個): 傳奇= plt.legend(列表,LOC =(1.05,0.05),標題= R '$ \ {BF標題} $')#Legend:列表,位置,標題(粗體) 文件「C:\ Python26 \ Lib \ site-packages \ matplotlib \ pyplot.py」,行2800,在圖例中 ret = gca()。legend(* args,** kwargs) 文件「C:\ Python26 \ Lib \ site-packages \ matplotlib \ axes.py」,4494行,在圖例中 標籤)] TypeError:zip參數#2必須支持迭代 –

+0

我注意到這些命令不起作用在Spyder中使用IPython控制檯,但在標準的Python(v2.7)控制檯中運行良好。在IPython中,它給'NameError:name'gca'未定義'。 – DougR

5

這是最快的:

plt.legend(loc=2,prop={'size':6}) 
4

拍着我的頭太,這裏是這樣做的另一個更流動的方式:

leg = ax.legend() 
leg.set_title('A great legend',prop={'size':14}) 
相關問題