per quanto ne so, non si può arbitrariamente posto un tavolo sulla matplotlib
plot utilizzando solo matplotlib
funzionalità native. Quello che puoi fare è sfruttare la possibilità di latex
text rendering. Tuttavia, per fare questo dovresti avere un ambiente operativonel tuo sistema. Se si dispone di uno, si dovrebbe essere in grado di produrre grafici, come di seguito:
import pylab as plt
import matplotlib as mpl
mpl.rc('text', usetex=True)
plt.figure()
ax=plt.gca()
y=[1,2,3,4,5,4,3,2,1,1,1,1,1,1,1,1]
#plt.plot([10,10,14,14,10],[2,4,4,2,2],'r')
col_labels=['col1','col2','col3']
row_labels=['row1','row2','row3']
table_vals=[11,12,13,21,22,23,31,32,33]
table = r'''\begin{tabular}{ c | c | c | c } & col1 & col2 & col3 \\\hline row1 & 11 & 12 & 13 \\\hline row2 & 21 & 22 & 23 \\\hline row3 & 31 & 32 & 33 \end{tabular}'''
plt.text(9,3.4,table,size=12)
plt.plot(y)
plt.show()
Il risultato è:
Tiene in mente che questo è esempio quick'n'dirty; dovresti essere in grado di posizionare correttamente la tabella giocando con le coordinate del testo. Si prega di fare riferimento anche al docs se è necessario cambiare i caratteri ecc
UPDATE: più pyplot.table
Secondo il documentation, plt.table
aggiunge un tavolo per assi attuali. Da fonti è ovvio, la posizione della tabella sul grafico è determinata in relazione agli assi. Y
coordinata può essere controllata con le parole chiave top
(grafico sopra), upper
(nella metà superiore), center
(al centro), lower
(nella metà inferiore) e bottom
(grafico in basso). La coordinata X
è controllata con le parole chiave left
e right
. Qualsiasi combinazione dei due lavori, ad es. uno qualsiasi di top left
, center right
e bottom
è OK da usare.
Così il grafico più vicino a ciò che si desidera potrebbe essere fatto con:
import matplotlib.pylab as plt
plt.figure()
ax=plt.gca()
y=[1,2,3,4,5,4,3,2,1,1,1,1,1,1,1,1]
#plt.plot([10,10,14,14,10],[2,4,4,2,2],'r')
col_labels=['col1','col2','col3']
row_labels=['row1','row2','row3']
table_vals=[[11,12,13],[21,22,23],[31,32,33]]
# the rectangle is where I want to place the table
the_table = plt.table(cellText=table_vals,
colWidths = [0.1]*3,
rowLabels=row_labels,
colLabels=col_labels,
loc='center right')
plt.text(12,3.4,'Table Title',size=8)
plt.plot(y)
plt.show()
E questo ti dà
Spero che questo aiuti!
Hai provato a cercare su [this] (http://matplotlib.sourceforge.net/mpl_examples/pylab_examples/table_demo.py) esempio? Oppure potresti anche essere in grado di fare qualcosa [simile] (http://matplotlib.sourceforge.net/examples/pylab_examples/annotation_demo3.html), ma al posto delle annotazioni, hai una tabella. – cosmosis
Sì, ho visto quell'esempio. Quando ho provato a utilizzare il codice non sono stato in grado di assegnare i colori e il posizionamento della riga. Inoltre, non sono riuscito a trovare alcuna guida per i documenti sulla sintassi o sul tipo per la chiamata. Per quanto riguarda le annotazioni, credo che ci sia più controllo che specifica un secondo asse per tracciare la tabella. – user1032355