2012-09-13 36 views
29

Tôi có một mã như thế này:Làm thế nào để đặt kích thước phông chữ của chú giải trục 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

Nó có thể được nhìn thấy trong cốt truyện mà các thiết lập trong Cỡ chữ không ảnh hưởng đến kích thước phông chữ Huyền thoại Tiêu đề.

Cách đặt kích thước phông chữ của tiêu đề chú giải thành kích thước nhỏ hơn?

Trả lời

41

Đây chắc chắn là một câu hỏi cũ, nhưng cũng làm tôi thất vọng và không có câu trả lời nào khác thay đổi chú thích tiêu đề phông chữ, nhưng thay vào đó chỉ thay đổi phần còn lại của văn bản. Vì vậy, sau khi đập đầu của tôi chống lại các tài liệu matplotlib cho một lúc tôi đã đưa ra điều này.

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

Tôi không biết làm thế nào để thiết lập nó cho một âm mưu cá nhân, nhưng tôi luôn luôn làm điều đó trên toàn cầu:

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

tôi thường làm theo cách này. Khi cốt truyện đã được thực hiện tôi làm như sau

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

Tôi không biết nếu làm việc này cho bạn

+0

Trong máy tính xách tay ipython, tôi chỉ làm ' setp (gca(). get_legend(). get_texts(), fontsize = 'small') '. –

26

Dưới đây là làm thế nào để thay đổi fontsize của danh sách huyền thoại và/hoặc tiêu đề truyền thuyết:

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

Bạn có thể giúp tôi trong việc hợp nhất đoạn mã bạn đã đề xuất với tôi không? Tôi thấy một số lỗi khi tôi thêm đoạn mã này vào mã tôi có. Cụ thể: Lần truy nguyên (lần gọi gần đây nhất): trong legend = plt.legend (danh sách, loc = (1.05,0.05), title = r '$ \ bf {Title} $') #Legend: list , vị trí, Tiêu đề (in đậm) Tệp "C: \ Python26 \ Lib \ site-packages \ matplotlib \ pyplot.py", dòng 2800, trong chú thích ret = gca(). chú thích (* args, ** kwargs) Tệp "C: \ Python26 \ Lib \ site-packages \ matplotlib \ axes.py", dòng 4494, trong chú thích nhãn)] LoạiError: đối số zip # 2 phải hỗ trợ lặp lại –

+0

Tôi nhận thấy các lệnh này không hoạt động trong Spyder sử dụng giao diện điều khiển IPython nhưng hoạt động tốt trong giao diện điều khiển chuẩn python (v2.7). Trong IPython nó cho 'NameError: name' gca 'không được định nghĩa'. – DougR

5

này là nhanh nhất:

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

đập đầu tôi chống lại nó cũng vậy, đây là một cách khác chảy hơn để làm việc đó:

leg = ax.legend() 
leg.set_title('A great legend',prop={'size':14}) 
Các vấn đề liên quan