2013-03-20 16 views
8

sto disegnando un tavolo con pyplot come questo:Come modificare il fontsize della tabella con matplotlib.pyplot?

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

Mi piacerebbe cambiare la grandezza scrittura del contenuto della tabella, e ha trovato c'è una proprietà fontsize, si prega di rif definition of 'table'.

Così diventa:

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

Ma quando eseguo il codice, ho ottenuto un errore:

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

è questa proprietà deprecato? E come posso cambiare il fontsize della tabella con pyplot?

+0

Si tratta di una proprietà, ma non è un argomento chiave al costruttore tavolo. prova a fare 't = sub_axes.table (...)' then 't.fontsize = 12' – jozzas

risposta

17

Penso che la documentazione indichi un parametro (nota fontsize non è un collegamento come gli altri parametri) o forse è un po 'fuorviante al momento. Non esiste il parametro fontsize.

Scavare attraverso the source code, ho trovato il metodo 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 

Ecco un esempio con un fontsize esagerata solo per mostrare l'effetto.

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

Per far funzionare questo, ho dovuto aggiungere' the_table.auto_set_font_size (False) 'prima di impostare la nuova dimensione del font –

9

Impostare la auto_set_font_size-False, poi set_fontsize(24)

the_table.auto_set_font_size(False) 
the_table.set_fontsize(24) 
Problemi correlati