首页 > 解决方案 > Python:根据名称组合pdf

问题描述

我编写了一些代码,为我的数据框中的每一列创建不同图形的 pdf。pdf 保存在保存代码的同一文件夹中。我使用列名和图形类型描述的组合保存了 pdf。我已经包含了一种图表的样本。此图另存为“columnname_histogram.pdf”

############################# HISTOGRAM ###############################################

palette = sns.color_palette(palette=sns.crayon_palette(sns.colors.crayons))
new_palette = itertools.cycle(palette)         
for i in data:  # Loop over all columns 
    k =data[i].astype(float) #Changing to float
    sns.set() #defaults the background
    fig, ax = plt.subplots()
    sns.set(style="ticks") #darkens grid lines
    sns.distplot(k,color=next(new_palette))  #sets which column to use
    sns.despine(offset=10, trim=True) 
    fig.set_size_inches(18,12)
    ax.set_title('{} Histogram'.format(i), fontweight='bold') #sets chart title based on column
    plt.savefig('{}_hist.pdf'.format(i), bbox_inches='tight')  #sets file name based on column name

除了直方图,我还有一个小提琴图和历史线图,它们具有相同的命名约定。

我的问题是,如何获取这些单独的 pdf 并将它们放入一个 pdf 以便于查看?我正在尝试将具有相同列名的所有 pdf 放入一个文档中。我可以遵循任何建议或示例代码吗?我没有任何运气尝试自己。

谢谢!

标签: pythonloopspdf

解决方案


如果您有一个可用于识别要合并的 pdf 的已定义模式,您可以使用 PyPDF2 将文件合并在一起:

from PyPDF2 import PdfFileMerger
import os    

colnames = ["col1", "col2"] # list of column names
for colname in colnames:    
    filemerger = PdfFileMerger()
    for file in os.listdir("/yourpdfdir"):
        if file.endswith(".pdf") and file.startswith(colname):
            filemerger.append(file)
    filemerger.write(colname+"_combined.pdf")
    filemerger.close()

推荐阅读