mi chiedevo come eseguire una cosa simile. Ho un set di grafici provenienti da diversi file di immagine, che variano a seconda del file. Quindi l'idea è, una volta trovato un buon numero di grafici che possono essere tracciati in una pagina, applicare questo per i file. Fortunatamente, ho trovato una soluzione suggerita qui: http://blog.marmakoide.org/?p=94. Tuttavia non funziona correttamente, poiché traccia solo i primi grafici del pannello, lasciando il resto dei pannelli vuoto. L'ho modificato e qui includo una versione funzionante per una griglia (1XN) e i grafici di output.
import numpy
from matplotlib import pyplot as plot
from matplotlib.backends.backend_pdf import PdfPages
# Generate the data
data = numpy.random.randn(7, 1024)
# The PDF document
pdf_pages = PdfPages('histograms.pdf')
# Generate the pages
nb_plots = data.shape[0]
nb_plots_per_page = 5
nb_pages = int(numpy.ceil(nb_plots/float(nb_plots_per_page)))
grid_size = (nb_plots_per_page, 1)
for i, samples in enumerate(data):
print
print i,i % nb_plots_per_page,samples
# Create a figure instance (ie. a new page) if needed
if i % nb_plots_per_page == 0:
print 'Opening'
fig = plot.figure(figsize=(8.27, 11.69), dpi=100)
# Close the page if needed
elif (i + 1) % nb_plots_per_page == 0 or (i + 1) == nb_plots:
plot.subplot2grid(grid_size, (i % nb_plots_per_page, 0))
plot.hist(samples, 32, normed=1, facecolor='#808080', alpha=0.75)
plot.title(str(i+1))
plot.tight_layout()
pdf_pages.savefig(fig)
print 'Closing'
print i,samples
# Plot stuffs !
print i,samples
plot.subplot2grid(grid_size, (i % nb_plots_per_page, 0))
plot.hist(samples, 32, normed=1, facecolor='#808080', alpha=0.75)
plot.title(str(i+1))
# Write the PDF document to the disk
pdf_pages.close()
print 'histograms.pdf'
Ci sto lavorando. Produce un pdf, ma ancora solo uno. Ho bisogno di un po 'di tempo per capirlo, ma hey, sono le sei qui, quindi succederà domani :) – astabada
Ho appena confermato che il codice di esempio ha prodotto un documento di tre pagine, con una figura in ogni pagina. –
È necessario suddividere i grafici nelle pagine e scrivere le pagine come mostrato nell'esempio. Non c'è funzionalità in matplotlib per impaginare automaticamente una serie di sottotrame. –