Matplotlib PDF에 글꼴 포함하기
Matplotlib로 생성한 PDF 파일에 글꼴을 포함(embed)하려면 plt.rcParams['pdf.fonttype'] = 42로 설정하면 됩니다. 이 값을 42로 지정하면 TrueType 폰트가 PDF에 그대로 임베딩되어, 어떤 환경에서 문서를 열어도 동일한 글꼴이 유지됩니다.
참고로 pdf.fonttype은 3(Type 3) 또는 42(TrueType) 중 선택할 수 있으며, 42로 설정하면 텍스트가 편집 가능한 형태로 포함되어 Adobe Illustrator 같은 프로그램에서 수정하기에도 유리합니다.
구현 단계
- figure 크기를 설정하고 서브플롯 사이 및 주변의 여백(padding)을 조정합니다.
- subplots() 메서드를 사용해 새 figure를 생성하거나 기존 figure를 활성화합니다.
- numpy를 사용해 x, y 데이터 포인트를 생성합니다.
- scatter() 메서드로 x, y 데이터를 산점도로 그립니다.
- 플롯의 제목을 설정합니다.
- figure를 PDF 형식으로 저장합니다.
예제 코드
import numpy as np
from matplotlib import pyplot as plt, font_manager as fm
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
plt.rcParams['pdf.fonttype'] = 42
fig, ax = plt.subplots()
x = np.random.rand(100)
y = np.random.rand(100)
ax.scatter(x, y, c=y, marker="v")
fprop = fm.FontProperties(fname='C:\\Windows\\Fonts\\MISTRAL.TTF')
ax.set_title('Scatter Plot With Random Points',
fontproperties=fprop, size=20, fontweight="bold")
plt.savefig("demo.pdf")실행 결과
코드를 실행하면 아래 플롯이 프로젝트 디렉터리에 "demo.pdf"라는 이름으로 저장됩니다.

제목 부분의 글꼴 스타일을 확인해 보세요. 제목에는 Mistral 폰트가 적용되어 있으며, PDF에도 해당 글꼴이 함께 포함된 것을 볼 수 있습니다.