módulo de trazado
def plotGraph(X,Y):
fignum = random.randint(0,sys.maxint)
plt.figure(fignum)
### Plotting arrangements ###
return fignum
módulo principal
import matplotlib.pyplot as plt
### tempDLStats, tempDLlabels are the argument
plot1 = plotGraph(tempDLstats, tempDLlabels)
plot2 = plotGraph(tempDLstats_1, tempDLlabels_1)
plot3 = plotGraph(tempDLstats_2, tempDLlabels_2)
plt.show()
Quiero guardar todos los gráficos plot1, plot2, plot3 en un solo archivo PDF. ¿Hay alguna forma de lograrlo? No puedo incluir la plotGraph
función en el módulo principal.
Hay una función nombrada pylab.savefig
pero que parece funcionar solo si se coloca junto con el módulo de trazado. ¿Hay alguna otra forma de lograrlo?
python
matplotlib
VoodooNiño92
fuente
fuente
Para múltiples parcelas en un solo archivo pdf, puede usar PdfPages
En la
plotGraph
función debe devolver la figura y luego la llamadasavefig
del objeto figura.------ módulo de trazado ------
def plotGraph(X,Y): fig = plt.figure() ### Plotting arrangements ### return fig
------ módulo de trazado ------
----- mainModule ----
from matplotlib.backends.backend_pdf import PdfPages plot1 = plotGraph(tempDLstats, tempDLlabels) plot2 = plotGraph(tempDLstats_1, tempDLlabels_1) plot3 = plotGraph(tempDLstats_2, tempDLlabels_2) pp = PdfPages('foo.pdf') pp.savefig(plot1) pp.savefig(plot2) pp.savefig(plot3) pp.close()
fuente
import datetime import numpy as np from matplotlib.backends.backend_pdf import PdfPages import matplotlib.pyplot as plt # Create the PdfPages object to which we will save the pages: # The with statement makes sure that the PdfPages object is closed properly at # the end of the block, even if an Exception occurs. with PdfPages('multipage_pdf.pdf') as pdf: plt.figure(figsize=(3, 3)) plt.plot(range(7), [3, 1, 4, 1, 5, 9, 2], 'r-o') plt.title('Page One') pdf.savefig() # saves the current figure into a pdf page plt.close() plt.rc('text', usetex=True) plt.figure(figsize=(8, 6)) x = np.arange(0, 5, 0.1) plt.plot(x, np.sin(x), 'b-') plt.title('Page Two') pdf.savefig() plt.close() plt.rc('text', usetex=False) fig = plt.figure(figsize=(4, 5)) plt.plot(x, x*x, 'ko') plt.title('Page Three') pdf.savefig(fig) # or you can pass a Figure object to pdf.savefig plt.close() # We can also set the file's metadata via the PdfPages object: d = pdf.infodict() d['Title'] = 'Multipage PDF Example' d['Author'] = u'Jouni K. Sepp\xe4nen' d['Subject'] = 'How to create a multipage pdf file and set its metadata' d['Keywords'] = 'PdfPages multipage keywords author title subject' d['CreationDate'] = datetime.datetime(2009, 11, 13) d['ModDate'] = datetime.datetime.today()
fuente
plt.show()
póngalo despuéspdf.savefig()
.No importa la manera de hacerlo.
def plotGraph(X,Y): fignum = random.randint(0,sys.maxint) fig = plt.figure(fignum) ### Plotting arrangements ### return fig
------ módulo de trazado ------
----- mainModule ----
import matplotlib.pyplot as plt ### tempDLStats, tempDLlabels are the argument plot1 = plotGraph(tempDLstats, tempDLlabels) plot2 = plotGraph(tempDLstats_1, tempDLlabels_1) plot3 = plotGraph(tempDLstats_2, tempDLlabels_2) plt.show() plot1.savefig('plot1.png') plot2.savefig('plot2.png') plot3.savefig('plot3.png')
----- mainModule -----
fuente