Matplotlib에서 한글 폰트 깨짐 문제 해결하기
Matplotlib은 파이썬에서 데이터 시각화를 위한 강력한 라이브러리지만, 기본적으로 한글을 지원하지 않아 그래프에 한글을 표시하면 깨져 보이는 문제가 있습니다. 이 문제를 해결하기 위한 방법을 알아보겠습니다.
한글 깨짐 문제의 원인
Matplotlib은 기본적으로 영문 폰트를 사용하도록 설정되어 있어, 한글과 같은 비ASCII 문자를 제대로 렌더링하지 못합니다. 그래서 한글 텍스트가 깨지거나 네모 박스(□□□)로 표시됩니다.
해결 방법
1. 시스템에 설치된 한글 폰트 사용하기
가장 간단한 방법은 시스템에 이미 설치된 한글 폰트를 사용하는 것입니다:
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'Malgun Gothic' # Windows의 맑은 고딕
# 또는 'AppleGothic' # macOS
# 또는 'NanumGothic' # 나눔고딕이 설치된 경우
plt.rcParams['axes.unicode_minus'] = False # 마이너스 기호 깨짐 방지
2. 다양한 환경에 대응하는 강건한 방법
위 코드에서 제시된 set_korean_font() 함수는 다양한 운영체제와 환경에서 한글 폰트를 찾아 설정하는 강건한 방법을 구현했습니다. 이 함수는:
- Windows, Mac, Linux 등 여러 운영체제의 기본 폰트 경로를 확인
- 시스템에 설치된 폰트 중 '맑은 고딕', '굴림', '나눔' 등의 키워드가 포함된 한글 폰트 검색
- 한글 폰트를 찾지 못하면 나눔 폰트 패키지 설치 시도
- 모든 방법이 실패하면 sans-serif 폰트로 대체
3. 외부 폰트 파일 직접 사용하기
특정 폰트 파일을 직접 지정하여 사용할 수도 있습니다:
from matplotlib import font_manager
font_path = 'path/to/your/korean_font.ttf' # 폰트 파일 경로
font_prop = font_manager.FontProperties(fname=font_path)
plt.title('한글 제목', fontproperties=font_prop)
4. 폰트 패키지 설치하기
파이썬 패키지로 제공되는 한글 폰트를 설치할 수도 있습니다:
# 터미널에서 실행
pip install matplotlib-korean-fonts
실제 사용 예시
import matplotlib.pyplot as plt
import numpy as np
# 한글 폰트 설정 함수 호출
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'Malgun Gothic' # Windows의 맑은 고딕
# 또는 'AppleGothic' # macOS
# 또는 'NanumGothic' # 나눔고딕이 설치된 경우
plt.rcParams['axes.unicode_minus'] = False # 마이너스 기호 깨짐 방지
# 데이터 생성
x = np.arange(10)
y = np.random.randint(1, 10, 10)
# 그래프 그리기
plt.figure(figsize=(10, 6))
plt.bar(x, y)
plt.title('한글 제목이 깨지지 않습니다')
plt.xlabel('한글 x축 레이블')
plt.ylabel('한글 y축 레이블')
plt.savefig('korean_graph.png')
plt.show()
'프로그래밍 > 모르는 코드 정리' 카테고리의 다른 글
Python을 활용한 TCP 소켓 통신의 이해와 구현 (0) | 2025.03.12 |
---|---|
Python의 vars()와 ** 연산자: 객체 속성 다루기의 효율적인 방법 (0) | 2024.12.30 |