본문 바로가기
Error

matplotlib 한글 깨지는 문제 해결

by holy_jjjae 2023. 9. 7.

 matplotlib는 대표적인 데이터 시각화를 위한 파이썬 라이브러리이다. 특히 Pandas나 NumPy 패키지를 자주 사용하시는 사람들은 아주 유용하게 사용할 수 있는 시각화 라이브러리다. 한국인이 matplotlib를 쓰다 보면 필연적으로 만나게 될 에러러를 정리해보겠다. matplotlib를 이용해서 플롯(plot)을 그릴 때, 제목, x라벨, y라벨 등에 영어가 아닌 한글을 사용하면, 한글이 제대로 표현되지 않고 깨진다.

import matplotlib.pyplot as plt

plt.scatter([0, 1, 2, 3, 4, 5], [0, 1, 2, 3, 4, 5])
plt.title('산점도')
plt.xlabel('변수1')
plt.ylabel('변수2')
plt.grid(True)
plt.show()

 

위 Python 코드를 실행하면 다음과 같은 Scatter plot이 그려진다.

한글로 표현되었어야 할 "산점도", "변수"가 네모로 표현된다. 

 

matplotlib 한글 깨짐 문제 해결법

이런 경우에는 다음과 같이 조치해줘야 한다.

사용하고자 하는 한글 폰트의 경로를 알려준 후 그 폰트로 텍스트가 쓰여지게 해야한다.

윈도우 PC에서 폰트는 C:\Windows\Fonts에 위치한다. 그 중에서 원하는 폰트의 영문명을 뒤에 덧붙여줘서 폰트의 정확한 위치를 알려준다. 폰트 이름의 영문 버전은 속성을 확인해보시면 알 수 있다. 

 

import matplotlib.pyplot as plt

from matplotlib import font_manager, rc
font_path = 'C:/Windows/Fonts/NGULIM.TTF"
font = font_manager.FontProperties(frame = font_path).get_name()
rc('font', family = font)

plt.scatter([0, 1, 2, 3, 4, 5], [0, 1, 2, 3, 4, 5])
plt.title('산점도')
plt.xlabel('변수1')
plt.ylabel('변수2')
plt.grid(True)
plt.show()

 

위 코드를 실행하면 다음과 같이 한글이 정상적으로 출력된다.

 

'Error' 카테고리의 다른 글

TypeError: unsupported format string passed to numpy.ndarray.__format__  (1) 2023.09.09
Loss가 [nan]일 경우  (1) 2023.08.26