Matplotlib 으로 다중 페이지 PDF 생성하기

Beginner

This tutorial is from open-source community. Access the source code

소개

이 랩에서는 Python Matplotlib 을 사용하여 여러 페이지의 PDF 파일을 만드는 방법을 배웁니다. PDF 파일에는 서로 다른 플롯과 메타데이터가 포함된 여러 페이지가 포함됩니다. 또한 PDF 파일에 주석을 첨부하는 방법도 배웁니다.

VM 팁

VM 시작이 완료되면, 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 접근하십시오.

때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한 사항으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.

학습 중에 문제가 발생하면 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 신속하게 해결해 드리겠습니다.

라이브러리 임포트

먼저, PDF 파일을 생성하는 데 필요한 라이브러리를 임포트해야 합니다. 이 랩에서는 Matplotlib 및 datetime 라이브러리를 사용합니다.

import datetime
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.backends.backend_pdf import PdfPages

PdfPages 객체 생성

다음으로, PDF 파일의 페이지를 저장할 PdfPages 객체를 생성해야 합니다. 'with' 문을 사용하여 예외가 발생하더라도 블록이 끝날 때 PdfPages 객체가 제대로 닫히도록 할 수 있습니다.

with PdfPages('multipage_pdf.pdf') as pdf:

첫 번째 페이지 생성

이 단계에서는 PDF 파일의 첫 번째 페이지를 생성합니다. 이 페이지에는 간단한 그래프의 플롯이 포함됩니다.

plt.figure(figsize=(3, 3))
plt.plot(range(7), [3, 1, 4, 1, 5, 9, 2], 'r-o')
plt.title('Page One')
pdf.savefig()
plt.close()

두 번째 페이지 생성

이 단계에서는 PDF 파일의 두 번째 페이지를 생성합니다. 이 페이지에는 사인파의 플롯이 포함됩니다.

plt.rcParams['text.usetex'] = True
plt.figure(figsize=(8, 6))
x = np.arange(0, 5, 0.1)
plt.plot(x, np.sin(x), 'b-')
plt.title('Page Two')
pdf.attach_note("plot of sin(x)")  ## attach metadata (as pdf note) to page
pdf.savefig()
plt.close()

세 번째 페이지 생성

이 단계에서는 PDF 파일의 세 번째 페이지를 생성합니다. 이 페이지에는 포물선의 플롯이 포함됩니다.

plt.rcParams['text.usetex'] = False
fig = plt.figure(figsize=(4, 5))
plt.plot(x, x ** 2, 'ko')
plt.title('Page Three')
pdf.savefig(fig)  ## or you can pass a Figure object to pdf.savefig
plt.close()

PDF 파일의 메타데이터 설정

이 단계에서는 PDF 파일의 메타데이터를 설정합니다. PDF 파일의 제목, 작성자, 주제, 키워드 및 생성/수정 날짜를 설정할 수 있습니다.

d = pdf.infodict()
d['Title'] = 'Multipage PDF Example'
d['Author'] = 'Jouni K. Sepp\xe4nen'
d['Subject'] = 'How to create a multipage pdf file and set its metadata'
d['Keywords'] = 'PdfPages multipage keywords author title subject'
d['CreationDate'] = datetime.datetime(2009, 11, 13)
d['ModDate'] = datetime.datetime.today()

요약

이 랩에서는 Python Matplotlib 을 사용하여 여러 페이지의 PDF 파일을 생성하는 방법을 배웠습니다. 또한 PDF 파일에 메타데이터와 주석을 첨부하는 방법도 배웠습니다. 이러한 기술을 사용하여 여러 플롯과 주석이 있는 전문적인 보고서를 만들 수 있습니다.