2013-07-22 44 views
16

在蟒(用于在GUI中创建一个图)我是能够保存下.JPG图并且还通过或者使用pdf格式:Python的保存多个数字到一个PDF文件

plt.savefig(filename1 + '.pdf') 

plt.savefig(filename1 + '.jpg') 

使用一个文件我想将多个数字保存为.pdf或.jpg(就像它在数学实验室中完成的一样)。任何人都可以帮忙吗?

+1

富谷歌一点点的把我带到这里:http://pybrary.net/pyPdf/ –

+0

更新链接,上面的意见(它现在是pyPdf2):HTTPS ://github.com/mstamy2/PyPDF2 –

回答

26

使用PdfPages解决您的问题。将您的figure对象传递给savefig方法。

举例来说,如果你有figure对象开一大堆,你想将它们保存到一个多页PDF,你可以做:

import matplotlib.backends.backend_pdf 
pdf = matplotlib.backends.backend_pdf.PdfPages("output.pdf") 
for fig in xrange(1, figure().number): ## will open an empty extra figure :(
    pdf.savefig(fig) 
pdf.close() 
+1

感谢它的完美工作。 –

+0

为我工作过,但是我必须使用'xrange(1,figure.number)'作为'图形对象不可调用' – FriskyGrub

+1

我不得不使用pyplot.gcf()。数字,我建议您使用它作为它更广泛适用。 – jimh

16

你的意思保存多个数字为一个文件,或使用一个脚本保存多个数字?

下面是如何使用一个脚本保存两个不同的数字。

>>> from matplotlib import pyplot as plt 
>>> fig1 = plt.figure() 
>>> plt.plot(range(10)) 
[<matplotlib.lines.Line2D object at 0x10261bd90>] 
>>> fig2 = plt.figure() 
>>> plt.plot(range(10,20)) 
[<matplotlib.lines.Line2D object at 0x10263b890>] 
>>> fig1.savefig('fig1.png') 
>>> fig2.savefig('fig2.png') 

...产生这两个地块为自己的 “巴纽” 文件: enter image description here

enter image description here

将它们保存到同一个文件,使用次要情节

>>> from matplotlib import pyplot as plt 
>>> fig = plt.figure() 
>>> axis1 = fig.add_subplot(211) 
>>> axis1.plot(range(10)) 
>>> axis2 = fig.add_subplot(212) 
>>> axis2.plot(range(10,20)) 
>>> fig.savefig('multipleplots.png') 

The上面的脚本产生这种单一的“巴纽”文件: enter image description here

+2

我认为这应该是它接受的答案,它确实是OP所要求的,而不需要使用外部库合并两个pdf文件。 – Dilawar

相关问题