2013-03-20 18 views
8

Rysuję tabelę z pyplot tak:Jak zmienić rozmiar czcionki tabeli za pomocą matplotlib.pyplot?

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

Chciałbym zmienić wielkość czcionki treści stołu i znaleźli tam jest właściwością fontsize, proszę Opłaty definition of 'table'.

Tak więc staje się:

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

Ale kiedy wykonanie kodu, mam błąd:

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

Czy ta właściwość nieaktualna? I jak mogę zmienić rozmiar czcionki tabeli z pyplot?

+0

Jest to nieruchomość, ale nie jest argumentem Hasło do konstruktora stołowego. spróbuj zrobić 't = sub_axes.table (...)' then 't.fontsize = 12' – jozzas

Odpowiedz

17

Myślę, że dokumentacja podpowiada przyszły parametr (uwaga: fontsize nie jest łączem takim jak inne parametry) lub może jest nieco myląca w tej chwili. Nie ma parametru fontsize.

Kopanie poprzez the source code znalazłem metodę Table.set_fontsize:

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 

Oto przykład z rażąco przesadzone fontSize żeby pokazać efekt.

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

Aby to działało, musiałem dodać' the_table.auto_set_font_size (False) 'przed ustawieniem nowego rozmiaru czcionki –

9

Ustaw auto_set_font_size do False, następnie set_fontsize(24)

the_table.auto_set_font_size(False) 
the_table.set_fontsize(24) 
Powiązane problemy