728x90

Python의 대표적인 시각화 도구인 Matplotlib은 강력한 기능을 제공하지만, 기본 설정에서는 한글이 깨지는 문제가 자주 발생합니다. 이 글에서는 한글 깨짐 현상의 원인과 다양한 해결 방법을 단계별로 안내합니다.
1. 한글 깨짐 문제의 원인
Matplotlib은 내부적으로 시스템에 설치된 폰트를 참조하여 텍스트를 렌더링합니다. 하지만 대부분의 운영체제에서 기본 한글 폰트가 설정되어 있지 않거나 Matplotlib이 이를 인식하지 못해 한글이 깨지거나 물음표(?)로 표시되는 현상이 발생합니다.
2. 해결 방법 요약표
| 방법 | 설명 | 적용 OS |
|---|---|---|
| 폰트 직접 지정 | matplotlib.rcParams에 폰트 지정 | Windows, macOS, Linux |
| 폰트 설치 | NanumGothic 또는 Malgun Gothic 설치 | Linux (서버 환경 포함) |
| 폰트 캐시 재설정 | matplotlib 캐시 삭제로 갱신 | 모든 환경 |
3. 폰트 직접 설정하기
아래 코드를 통해 한글이 포함된 그래프를 문제없이 출력할 수 있습니다.
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
import platform
# 운영체제별 폰트 설정
if platform.system() == 'Windows':
plt.rc('font', family='Malgun Gothic')
elif platform.system() == 'Darwin': # macOS
plt.rc('font', family='AppleGothic')
else:
plt.rc('font', family='NanumGothic')
# 마이너스 기호 깨짐 방지
plt.rcParams['axes.unicode_minus'] = False
# 테스트 그래프
plt.plot([1, 2, 3], [1, 4, 9])
plt.title("한글 제목")
plt.xlabel("가로축")
plt.ylabel("세로축")
plt.show()
4. NanumGothic 설치 방법 (Ubuntu 예시)
서버 환경에서 주로 사용되는 Ubuntu에서는 아래 명령어로 한글 폰트를 설치할 수 있습니다.
sudo apt update
sudo apt install fonts-nanum
설치 후 다음 명령어로 캐시를 재설정합니다:
import matplotlib as mpl
import os
mpl.get_cachedir()
# 위 경로에서 폰트 캐시 삭제 후 재실행
5. TTF 파일 직접 로딩 방법
시스템에 폰트가 없거나 직접 폰트를 프로젝트에 포함시키고 싶을 때 사용할 수 있습니다.
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
font_path = './fonts/NanumGothic.ttf'
font_prop = fm.FontProperties(fname=font_path)
plt.title('한글 테스트', fontproperties=font_prop)
plt.plot([1, 2, 3], [4, 5, 6])
plt.show()
6. 한글과 마이너스 기호 함께 깨질 때 해결 방법
한글은 잘 출력되지만 마이너스(-) 기호가 깨지는 경우에는 아래 설정을 추가해줘야 합니다:
plt.rcParams['axes.unicode_minus'] = False
7. 자주 묻는 질문 (FAQ)
- Q: 구글 Colab에서도 설정이 필요한가요?
A: 네, Colab에서도 아래 명령어를 통해 한글 폰트를 설치하고 설정해야 합니다.!apt -qq -y install fonts-nanum import matplotlib.pyplot as plt plt.rc('font', family='NanumBarunGothic') - Q: 폰트 적용이 안 되는 것 같아요.
A: 캐시 삭제 후 다시 실행해 보세요.import matplotlib as mpl mpl.font_manager._rebuild()
8. 결론
Matplotlib에서의 한글 깨짐 문제는 몇 가지 설정만으로도 충분히 해결할 수 있습니다. 다양한 운영체제와 환경을 고려한 대응법을 숙지하고 프로젝트에 적용해보세요. 가독성이 좋은 시각화는 데이터 분석의 신뢰도를 높이는 중요한 요소입니다.
출처 (References)
728x90
'Artificial Intelligence > 60. Python' 카테고리의 다른 글
| [PYTHON] Redis‑Py : Python용 Redis 커넥터 완벽 가이드 (0) | 2025.07.25 |
|---|---|
| [PYTHON] pandas groupby 예제 : 실전 활용 완전 정복 (0) | 2025.07.25 |
| [PYTHON] Cython으로 파이썬 속도 10배 빠르게 만들기 (0) | 2025.07.25 |
| [PYTHON] tkinter로 만드는 파이썬 GUI : 윈도우부터 이벤트까지 (0) | 2025.07.25 |
| [PYTHON] threading vs asyncio : 동시성 프로그래밍 완전 비교 (0) | 2025.07.25 |