2013-03-20 32 views
8

Tôi vẽ một bảng với pyplot như thế này:Làm cách nào để thay đổi phông chữ của bảng bằng matplotlib.pyplot?

sub_axes.table(cellText=table_vals, 
      colWidths = [0.15, 0.25], 
      rowLabels=row_labels, 
      loc='right') 

Tôi muốn thay đổi fontsize nội dung của bảng, và tìm thấy ở đó là một tài sản fontsize, xin ref definition of 'table'.

Vì vậy, nó trở thành:

sub_axes.table(cellText=table_vals, 
      colWidths = [0.15, 0.25], 
      rowLabels=row_labels, 
      fontsize=12, 
      loc='right') 

Nhưng khi tôi thực thi mã, tôi đã nhận ra lỗi:

TypeError: table() got an unexpected keyword argument 'fontsize' 

là tài sản này bị phản đối? Và làm thế nào tôi có thể thay đổi phông chữ của bảng với pyplot?

+0

Đó là một tài sản nhưng không phải là một luận cứ từ khóa để các nhà xây dựng bảng. thử làm 't = sub_axes.table (...)' rồi 't.fontsize = 12' – jozzas

Trả lời

17

Tôi nghĩ tài liệu hướng dẫn hoặc tham số ở một tham số (thông báo fontsize không phải là một liên kết giống như các tham số khác) hoặc có thể là một chút gây hiểu lầm tại thời điểm này. Không có thông số fontsize.

Đào qua the source code, tôi thấy Table.set_fontsize phương pháp:

table = sub_axes.table(cellText=table_vals, 
         colWidths = [0.15, 0.25], 
         rowLabels=row_labels, 
         loc='right') 
table.set_fontsize(14) 
the_table.scale(1.5, 1.5) # may help 

Dưới đây là một ví dụ với một fontsize hiển nhiên phóng đại chỉ để hiển thị hiệu ứng.

import matplotlib.pyplot as plt 
# Based on http://stackoverflow.com/a/8531491/190597 (Andrey Sobolev) 

fig = plt.figure() 
ax = fig.add_subplot(111) 
y = [1, 2, 3, 4, 5, 4, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1]  
col_labels = ['col1', 'col2', 'col3'] 
row_labels = ['row1', 'row2', 'row3'] 
table_vals = [[11, 12, 13], [21, 22, 23], [31, 32, 33]] 

the_table = plt.table(cellText=table_vals, 
         colWidths=[0.1] * 3, 
         rowLabels=row_labels, 
         colLabels=col_labels, 
         loc='center right') 
the_table.set_fontsize(24) 
the_table.scale(2, 2) 

plt.plot(y) 
plt.show() 

enter image description here

+15

Để làm việc này, tôi phải thêm' the_table.auto_set_font_size (False) 'trước khi đặt kích thước phông chữ mới –

9

Đặt auto_set_font_size-False, sau đó set_fontsize(24)

the_table.auto_set_font_size(False) 
the_table.set_fontsize(24) 
Các vấn đề liên quan