matplotlib의 한글 깨짐 문제 발생

matplotlib으로 그래프를 출력할 때 한글이 들어가게 될 경우

한글이 깨져서 출력되는 상황이 발생한다. 

matpltlib에서는 기본적으로 한글폰트가 제공되지 않기 때문이다.

이를 해결하기 위해서는 아래와 같이 font_manager와 rc를 import하면 된다.


예시코드

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

font_name = font_manager.FontProperties(fname="c:\Windows\Fonts\malgun.ttf").get_name()
rc('font', family=font_name)

참고자료 읽어보기

https://matplotlib.org/stable/api/font_manager_api.html

해당 matplotlib 공식 문서에 들어가서 확인 해보니, font_manager의 findfont 함수가 FontProperties와 일치하는 시스템 글꼴 경로에 있는

TTF타입의 글꼴을 확인하고, 반환하는 역할을 한다.

그리고 get_name()은 폰트 속성과 가장 잘 맞는 폰트의 이름을 반환한다.

그리고 rc()를 통해서 폰트를 설정하는 것이다.

정리하자면, font_managerFontProperties를 통해서 로컬 혹은 시스템에 들어있는 폰트 관련 경로를 불러오고,

그것을 rc를 통해서 matplotlib에 사용할 폰트로 지정하는 것이라 할 수 있다.