2011-08-19 26 views
190

Simple câu hỏi ở đây: Tôi đang cố gắng để có được kích thước của huyền thoại của tôi sử dụng matplotlib.pyplot nhỏ hơn (ví dụ, các văn bản được nhỏ hơn). Mã Tôi đang sử dụng đi một cái gì đó như thế này:Làm thế nào để thay đổi kích thước huyền thoại với matplotlib.pyplot

plot.figure() 
plot.scatter(k, sum_cf, color='black', label='Sum of Cause Fractions') 
plot.scatter(k, data[:, 0], color='b', label='Dis 1: cf = .6, var = .2') 
plot.scatter(k, data[:, 1], color='r', label='Dis 2: cf = .2, var = .1') 
plot.scatter(k, data[:, 2], color='g', label='Dis 3: cf = .1, var = .01') 
plot.legend(loc=2) 

Trả lời

338

Bạn có thể đặt một font size riêng cho huyền thoại bằng cách điều chỉnh từ khóa prop.

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

Điều này cần có từ điển từ khóa tương ứng với matplotlib.font_manager.FontProperties thuộc tính. Xem documentation for legend:

luận Từ khóa:

prop: [ None | FontProperties | dict ] 
    A matplotlib.font_manager.FontProperties instance. If prop is a 
    dictionary, a new instance will be created with prop. If None, use 
    rc settings. 

Cũng có thể, như các phiên bản 1.2.1, sử dụng từ khoá fontsize.

+1

Bạn có thể cho tôi biết nơi tôi có thể tìm thấy chi tiết về 'plot.rcParams.update'? – haccks

39

này nên làm

import pylab as plot 
params = {'legend.fontsize': 20, 
      'legend.handlelength': 2} 
plot.rcParams.update(params) 

Sau đó làm cốt truyện sau đó.

Có một tấn rcParams khác, họ cũng có thể được thiết lập trong file matplotlibrc.

Cũng có lẽ bạn có thể thay đổi nó đi qua một ví dụ matplotlib.font_manager.FontProperties nhưng điều này tôi không biết làm thế nào để làm. -> xem câu trả lời của Yann.

+1

Hoặc 'matplotlib.rc ('huyền thoại', fontsize = 0,5, độ rộng vạch phổ = 2) ' – Eric

+1

cần được' legend.handlelength' thay vì' legend.linewidth' –

+0

Thành viên get_default_size() của FontManager trả về kích thước mặc định. Đối với tôi, nó là 12 –

4

Khi cài đặt, FontProperties chỉ thay đổi kích thước văn bản, nhưng nó vẫn quá lớn và cách nhau. Tôi đã tìm thấy thông số trong pyplot.rcParams: legend.labelspacing, mà tôi đoán được đặt thành một phần nhỏ của kích thước phông chữ. Tôi đã thay đổi nó với

pyplot.rcParams.update({'legend.labelspacing':0.25}) 

Tôi không chắc chắn làm thế nào để xác định nó với chức năng pyplot.legend - đi qua

prop={'labelspacing':0.25} 

hoặc

prop={'legend.labelspacing':0.25} 

trở lại với một lỗi .

+6

Chỉ cần cung cấp cho 'huyền thoại (labelspacing = 0,25)' làm việc cho tôi. – Adobe

12

Có nhiều cài đặt để điều chỉnh kích thước chú giải. Hai điều tôi thấy hữu ích nhất là:

  • gắn nhãn: đặt khoảng cách giữa các mục nhập nhãn theo bội số của cỡ chữ. Ví dụ với phông chữ 10 điểm, legend(..., labelspacing=0.2) sẽ giảm khoảng cách giữa các mục đến 2 điểm. Cài đặt mặc định của tôi là khoảng 0,5.
  • chống đỡ: cho phép kiểm soát toàn bộ kích thước phông chữ, v.v. Bạn có thể đặt phông chữ 8 điểm bằng cách sử dụng legend(..., prop={'size':8}). Cài đặt mặc định của tôi là khoảng 14 điểm.

Bên cạnh đó, legend documentation danh sách một số thông số đệm và khoảng cách khác bao gồm: borderpad, handlelength, handletextpad, borderaxespad, và columnspacing. Tất cả đều theo cùng một hình thức như nhãn mác và khu vực cũng trong bội số của phông chữ.

Các giá trị này cũng có thể được đặt làm mặc định cho tất cả các số liệu bằng cách sử dụng matplotlibrc file.

26

Ngoài ra còn có một vài tên fontsizes, ngoài kích thước theo điểm:

xx-small 
x-small 
small 
medium 
large 
x-large 
xx-large 

Cách sử dụng:

pyplot.legend(loc=2, fontsize = 'x-small') 
16

sử dụng import matplotlib.pyplot as plt

Phương pháp 1: xác định fontsize khi gọi huyền thoại (lặp lại)

plt.legend(fontsize=20) # using a size in points 
plt.legend(fontsize="x-large") # using a named size 

Với phương pháp này, bạn có thể đặt phông chữ cho mỗi chú thích khi tạo (cho phép bạn có nhiều truyền thuyết với các phông chữ khác nhau). Tuy nhiên, bạn sẽ phải nhập mọi thứ theo cách thủ công mỗi khi bạn tạo chú thích.

(Lưu ý: @ Mathias711 liệt kê các fontsizes tên có sẵn trong câu trả lời của ông)

Cách 2: xác định fontsize trong rcParams (thuận tiện)

plt.rc('legend',fontsize=20) # using a size in points 
plt.rc('legend',fontsize='medium') # using a named size 

Với phương pháp này, bạn thiết lập các huyền thoại mặc định phông chữ, và tất cả các truyền thuyết sẽ tự động sử dụng trừ khi bạn chỉ định phương pháp khác bằng cách sử dụng 1. Điều này có nghĩa là bạn có thể đặt chú thích phông chữ ở đầu mã của mình và không phải lo lắng về việc đặt chú thích cho mỗi chú giải riêng lẻ.

Nếu bạn sử dụng kích thước có tên, ví dụ: 'medium', sau đó văn bản chú giải sẽ mở rộng với toàn cầu font.size trong rcParams. Để thay đổi font.size sử dụng plt.rc(font.size='medium')

Các vấn đề liên quan