Matplotlib 한글 깨짐 완벽 해결 가이드


Python의 대표적인 시각화 라이브러리인 Matplotlib은 강력하지만,
여전히 많은 사람들이 겪는 문제가 있습니다 — 바로 한글 깨짐(Font Rendering) 현상입니다.

이번 글에서는 2025년 최신 Matplotlib 버전을 기준으로
운영체제별 한글 깨짐 문제를 완벽하게 해결하는 방법을 단계별로 안내합니다.


한글 깨짐이 발생하는 이유

Matplotlib은 기본적으로 영문 폰트만 지원하는 구조입니다.
따라서 그래프 내 xlabel, ylabel, title 등에 한글을 입력하면 아래와 같은 경고가 발생합니다.

“`python
UserWarning: Glyph 44032 (\N{HANGUL SYLLABLE GA}) missing from current font.

import matplotlib.pyplot as plt
from matplotlib import font_manager, rc

[ Windows 환경 해결법 ]

1. 시스템 폰트 경로 지정

font_path = “C:/Windows/Fonts/malgun.ttf”
font_name = font_manager.FontProperties(fname=font_path).get_name()

2. 폰트 적용

rc(‘font’, family=font_name)

3. 마이너스 기호 깨짐 방지

plt.rcParams[‘axes.unicode_minus’] = False

4. 테스트 그래프

plt.title(‘Matplotlib 한글 깨짐 테스트’)
plt.plot([1, 2, 3], [1, 4, 9])
plt.xlabel(‘가로축’)
plt.ylabel(‘세로축’)
plt.show()

[ macOS 환경 해결법 ]

import matplotlib.pyplot as plt
import platform

if platform.system() == ‘Darwin’:
plt.rc(‘font’, family=’AppleGothic’)
plt.rcParams[‘axes.unicode_minus’] = False

plt.title(‘한글 폰트 테스트’)
plt.plot([1, 2, 3], [1, 4, 9])
plt.show()

[ Linux (Ubuntu, Colab 등) 환경 해결법 ]

리눅스 환경에서는 기본적으로 한글 폰트가 없습니다.
따라서 먼저 폰트를 설치하고, Matplotlib 설정에 등록해야 합니다.

1. 한글 폰트 설치 (예: 나눔고딕)

!sudo apt-get install -y fonts-nanum

2. 캐시 초기화

import matplotlib.font_manager as fm
fm._rebuild()

3. Matplotlib 폰트 지정

import matplotlib.pyplot as plt
plt.rc(‘font’, family=’NanumGothic’)
plt.rcParams[‘axes.unicode_minus’] = False

4. 테스트

plt.title(‘리눅스 한글 폰트 설정 완료’)
plt.plot([1, 2, 3], [1, 4, 9])
plt.show()

전체 환경에서 공통적으로 점검할 항목

항목설명
rcParams['font.family']현재 사용 중인 폰트 확인
matplotlib.get_cachedir()캐시 폴더 위치 확인
font_manager.findSystemFonts()시스템 내 인식 가능한 폰트 목록
plt.rcParams['axes.unicode_minus']음수 표시(-) 깨짐 여부 설정

예시 코드:

import matplotlib
print(matplotlib.get_cachedir())
print(matplotlib.rcParams[‘font.family’])

자주 발생하는 오류와 해결법

오류 메시지원인해결 방법
Glyph missing from current font폰트가 한글을 지원하지 않음한글 폰트로 교체
RuntimeError: In set_text: Could not convert string to glyphMatplotlib 캐시 오류rm -rf ~/.cache/matplotlib 후 재시작
한글은 나오지만 □□□로 표시됨폰트 파일 손상다른 폰트 지정 후 캐시 삭제

결론

Matplotlib의 한글 깨짐 문제는 폰트 지정 → 캐시 초기화 → 마이너스 기호 설정
이 세 단계만 올바르게 적용하면 완벽하게 해결됩니다.

한 줄 요약
“Matplotlib 한글 깨짐은 폰트 문제다. 폰트만 올바르게 등록하면 100% 해결된다.”