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()
실행 결과

코드 핵심 포인트
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에서 간단히 얻을 수 있습니다.