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

mpl.rcParams를 활용해 Matplotlib에서 .ttf 커스텀 폰트 로드하는 방법

mpl.rcParams를 사용하여 Matplotlib에서 .ttf 폰트 파일을 로드하려면 몇 가지 간단한 단계만 거치면 됩니다. 기본 폰트 대신 원하는 트루타입(TTF) 폰트를 전체 그래프에 적용하고 싶을 때 매우 유용한 방법입니다.

구현 단계

  • 그림(figure) 크기를 설정하고 서브플롯 사이 및 주변 여백(padding)을 자동으로 조정합니다.
  • .ttf 폰트 파일이 저장된 경로를 지정합니다.
  • 폰트 속성을 저장하고 관리하는 FontProperties 클래스의 인스턴스를 생성합니다.
  • 폰트 속성과 가장 잘 일치하는 폰트 이름으로 font.family를 설정합니다.
  • 그림과 서브플롯 세트를 생성합니다.
  • 그래프의 제목을 설정합니다.
  • show() 메서드를 호출하여 그림을 화면에 표시합니다.

예제 코드

from matplotlib import pyplot as plt, font_manager as fm

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

path = '/usr/share/fonts/truetype/malayalam/Karumbi.ttf'

fprop = fm.FontProperties(fname=path)

plt.rcParams['font.family'] = fprop.get_name()

fig, ax = plt.subplots()
ax.set_title('This is my title!', size=40)

plt.show()

코드 설명

fm.FontProperties(fname=path)는 지정된 경로의 .ttf 파일을 읽어 폰트 속성 객체를 생성합니다. 이후 fprop.get_name()을 호출하면 해당 폰트 파일 내부에 정의된 실제 폰트 이름(예: 'Karumbi')을 얻을 수 있습니다. 이 이름을 plt.rcParams['font.family']에 할당하면, 이후 생성되는 모든 텍스트 요소(제목, 축 레이블, 범례 등)에 해당 커스텀 폰트가 일괄 적용됩니다.

또한 figure.autolayout을 True로 설정하면 레이블이나 제목이 잘리지 않도록 여백이 자동으로 조정되므로 별도의 레이아웃 수동 조정 없이 깔끔한 결과물을 얻을 수 있습니다.

출력 결과

mpl.rcParams를 활용해 Matplotlib에서 .ttf 커스텀 폰트 로드하는 방법