이 글은 matplotlib을 이용하여 그래프를 작성할 때, 한글이 깨져 출력되지 않는 현상을 해결하는 방법이다.
그래프 한글 깨짐 현상
matplotlib에서 한글이 출력되지 않는 현상은 기본적으로 matplotlib을 이용하여 그래프를 그릴 때 사용되는 폰트가 한글을 지원하지 않아 발생하는 현상이다.
위 이미지와 같이 한글로 작성된 그래프 제목은 출력되지 않았으나 숫자인 y축과 x축은 제대로 출력된 것을 확인할 수 있다.
그럼 원인을 알았으니 바로 해결방법을 알아보자.
해결 방법
설치된 폰트 확인
어떤 폰트가 설치되어 있고, 사용할 수 있는지 알아보기 위한 과정이다. 만약 폰트 이름을 정확하게 알고 있다면(영어로) 이 과정은 넘어가도 된다.
현재 작업하고 있는 환경은 Jupyter Notebook이다.
아래 3줄의 코드를 작성하고 실행하면 현재 컴퓨터에 설치되어 있는 폰트를 확인할 수 있다.
import matplotlib.font_manager as fm
font_list = [font.name for font in fm.fontManager.ttflist]
font_list
설치된 폰트를 확인했다면, 이 중에서 본인이 평소 자주 사용했던 폰트나 원하는 폰트를 선택하면 된다. 필자는 이 과정에서 맑은 고딕(Malgun Gothic)을 사용해볼 것이다.
폰트 설정
폰트를 변경할 때에는 matplotlib.pyplot
에 있는 rcParams['font_family']
를 이용하여 변경할 수 있다.
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'Malgun Gothic'
필자는 맑은 고딕으로 변경하기 위해 Malgun Gothic
을 입력했지만, 다른 폰트로 변경하고 싶으면 맑은 고딕 대신 다른 폰트 이름을 넣으면 된다.
이렇게 폰트를 설정하고 다시 그래프를 작성하면 한글이 정상적으로 출력된다.
요약
- matplotlib를 이용하여 그래프를 그릴 때 한글이 출력되지 않는 것은 폰트가 한글을 지원하지 않기 때문
- 설치된 폰트는 아래 코드를 이용하여 확인이 가능
import matplotlib.font_manager as fm
font_list = [font.name for font in fm.fontManager.ttflist]
font_list
- 폰트를 변경할 때에는
plt.rcParams['font.family'] = 'font_name'
을 이용하여 설정