在matplotlib中保存多个数字为一个pdf文件

问题描述:

我有一个代码可以根据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

代码中存在缩进错误。由于您的绘图命令不在循环中,它只会创建最后一个绘图。

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)