2013-07-22 42 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

相關問題