2015-04-03 81 views
5

我有一個代碼可以根據groupby創建大約50個圖。代碼如下所示:在matplotlib中保存多個數字爲一個pdf文件

import matplotlib.pyplot as plt 
from matplotlib.backends.backend_pdf import PdfPages 

with PdfPages('foo.pdf') as pdf: 
    for i, group in df.groupby('station_id'): 
     plt.figure() 


fig=group.plot(x='year', y='Value',title=str(i)).get_figure() 
pdf.savefig(fig) 

這是隻保存一個數字,(最後一個在我的系列)的時候,我想我所有的數據被存儲到一個PDF文件。任何幫助,將不勝感激。

+0

您的壓痕似乎是錯誤的。我認爲'圖=組...'應該去你的for循環 – 2015-04-03 16:18:00

+0

這樣做我明白你希望你的pdf文件有50頁,每一頁有一個不同的數字? – 2015-04-03 16:18:54

+0

這是正確的。我想我不介意每頁有多個數字,但是我對上面代碼的意圖是每頁有一個數字。我的縮進可能是錯的,我對python仍然很陌生。 – 2015-04-03 16:21:14

回答

7

代碼中存在縮進錯誤。由於您的繪圖命令不在循環中,它只會創建最後一個繪圖。

import matplotlib.pyplot as plt 
from matplotlib.backends.backend_pdf import PdfPages 

with PdfPages('foo.pdf') as pdf: 
    for i, group in df.groupby('station_id'): 
     plt.figure() 
     fig=group.plot(x='year', y='Value',title=str(i)).get_figure() 
     pdf.savefig(fig)