módulo de plotagem
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()
Quero salvar todos os gráficos plot1, plot2, plot3 em um único arquivo PDF. Existe alguma maneira de conseguir isso? Não consigo incluir a plotGraph
função no módulo principal.
Existe uma função chamada, pylab.savefig
mas que parece funcionar apenas se for colocada junto com o módulo de plotagem. Existe alguma outra maneira de fazer isso?
python
matplotlib
VoodooChild92
fonte
fonte
Para múltiplas plotagens em um único arquivo pdf, você pode usar PdfPages
Na
plotGraph
função você deve retornar a figura e então chamarsavefig
o objeto figura.------ módulo de plotagem ------
def plotGraph(X,Y): fig = plt.figure() ### Plotting arrangements ### return fig
------ módulo de plotagem ------
----- 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()
fonte
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()
fonte
plt.show()
coloque depoispdf.savefig()
.Não importa o jeito de fazer isso.
def plotGraph(X,Y): fignum = random.randint(0,sys.maxint) fig = plt.figure(fignum) ### Plotting arrangements ### return fig
------ módulo de plotagem ------
----- 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 -----
fonte