Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Matplotlib로 생성한 PDF에 글꼴을 포함하는 방법

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"라는 이름으로 저장됩니다.

Matplotlib로 생성한 PDF에 글꼴을 포함하는 방법

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