簡體   English   中英

Python 將多個圖形保存到一個 PDF 文件中

[英]Python saving multiple figures into one PDF file

在 python 中(對於在 GUI 中創建的圖形),我可以使用以下任一方法將圖形保存在 .jpg 和 .pdf 下:

plt.savefig(filename1 +  '.pdf')

或者

plt.savefig(filename1 +  '.jpg')

使用一個文件,我想以 .pdf 或 .jpg 格式保存多個數字(就像在數學實驗室中所做的那樣)。 有人可以幫忙嗎?

使用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()

您的意思是將多個圖形保存一個文件中,還是使用一個腳本保存多個圖形?

以下是使用一個腳本保存兩個不同圖形的方法。

>>> 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')

...將這兩個圖生成到它們自己的“.png”文件中: 在此處輸入圖片說明

在此處輸入圖片說明

要將它們保存到同一個文件中,請使用子圖

>>> 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')

上面的腳本生成這個單一的“.png”文件:在此處輸入圖片說明

我在同樣的問題上掙扎。 我試圖將 2,000 個散點圖放入單個 .pdf 中。 我能夠開始該程序,但它在幾百后中止。 即使當我將六個散點圖創建到一個 .pdf 中時,.pdf 文件也非常龐大(如 7mb),只有六個 .jpg,每個 30kb。 當我打開 .pdf 時,似乎 .pdf 正在繪制圖表上的每個點(每個圖表都有數千個點)而不是顯示圖像。 總有一天,我會找出正確的選項,但這里有一個快速而骯臟的解決方法。 我將散點圖打印到本地目錄中的單個 .jpg 文件中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM