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

Matplotlib 출력에서 LaTeX와 동일한 글꼴을 사용하는 방법


Matplotlib 그래프의 제목이나 축 레이블에 LaTeX 출력과 동일한 글꼴(수식 폰트)을 적용하면, 논문이나 학술 문서에 넣을 그래프를 훨씬 전문적으로 만들 수 있습니다. 아래 단계를 따라 하면 누구나 쉽게 구현할 수 있습니다.

구현 단계

  • x 데이터 생성: numpy의 linspace()를 이용해 1부터 10까지 1000개의 균일한 데이터 포인트를 만듭니다.
  • y 데이터 생성: y = sin(x) 공식으로 사인 함수 값을 계산합니다.
  • 곡선 플롯: LaTeX 수식 표현(r'$\sin (x)$')을 레이블로 사용하여 x, y 곡선을 그립니다.
  • 범례 활성화: legend() 메서드를 호출해 그래프에 레이블을 표시합니다.
  • 그래프 출력: show() 메서드로 완성된 그래프를 화면에 나타냅니다.

예제 코드

import numpy as np
from matplotlib import pyplot as plt, font_manager as fm

# 커스텀 폰트 파일 지정
fprop = fm.FontProperties(fname='/usr/share/fonts/truetype/malayalam/Karumbi.ttf')

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

x = np.linspace(1, 10, 1000)
y = np.sin(x)

plt.plot(x, y, label=r'$\sin (x)$', c="red", lw=2)
plt.title(label=r'$\sin (x)$', fontproperties=fprop)

plt.show()

실행 결과

Matplotlib 출력에서 LaTeX와 동일한 글꼴을 사용하는 방법

코드 핵심 포인트

1. 커스텀 폰트 적용: font_manager 모듈의 FontProperties 클래스를 사용하면 시스템에 설치된 TTF 폰트 파일을 직접 불러와 제목이나 레이블에 적용할 수 있습니다. fname 인자에 원하는 폰트 파일의 경로를 지정하기만 하면 됩니다.

2. 그래프 크기 및 레이아웃 설정: plt.rcParams["figure.figsize"]로 그래프 크기를 조절하고, plt.rcParams["figure.autolayout"] = True로 설정하면 레이블이 잘리지 않도록 여백이 자동으로 조정됩니다.

3. LaTeX 수식 표현: 문자열 앞에 r을 붙인 raw string 형태(r'$\sin (x)$')로 작성하면 Matplotlib가 내장 mathtext 엔진을 통해 LaTeX 스타일의 수식을 렌더링합니다. 별도의 LaTeX 설치 없이도 달러 기호($) 사이에 수식을 넣어 손쉽게 표현할 수 있습니다.

이처럼 FontProperties와 mathtext 표기법을 함께 활용하면, LaTeX 문서에 삽입한 것과 동일한 느낌의 고품질 그래프를 Matplotlib에서 간단히 얻을 수 있습니다.