본문 바로가기
Computer/python

[python] 가상환경(Ubuntu)에서 matplotlib 한글폰트 사용하기

by injeolmialmond 2021. 11. 4.

안녕하세요! 오늘은 Virtual Machine에서 쥬피터 노트북을 돌리는 경우, matplotlib에서 한글 폰트 깨짐이 발생할 때 해결 방법을 알려드리겠습니다 :)

 

데이터 분석을 하다보면 대용량 데이터, 그리고 어마어마한 양의 연산을 노트북이 감당하기 어려워, 서버를 사용하는 경우가 많이 있습니다.

 

저는 이전에 웹 어플리케이션을 인터넷에 올리기 위해서 클라우드를 사용한 이후에 서버를 사용하는 것도 처음이고, 또  서버에서 쥬피터노트북을 돌리는 건 처음이라 더욱 헤맸는데, 이 게시물을 읽으시는 분들은 바로 문제를 해결하실 수 있었으면 좋겠습니다 :)

 

 


한글 폰트를 설정하지 않은 경우, 파이썬은 한글 대신 네모로 대체하게 되는데요,

이후 다시 한글 폰트를 설정한 이후에도 다음과 같은 오류를 보게 되는 경우도 있습니다.

 

userwarning: findfont: font family ['nanumgothic'] not found. falling back to dejavu sans (prop.get_family(), self.defaultfamily[fontext]))

 

내가 설정한 폰트를 찾을 수가 없다는 뜻인데요, 이 때 다음과 같은 코드를 사용하면, matplotlib에 설치된 폰트의 경로를 알 수 있습니다.

import matplotlib.font_manager as fm
fontlist = fm.findSystemFonts(fontpaths=None, fontext='ttf')

또한 잘 설치가 되었는지 확인하기 위해서는 다음 코드를 돌려보시면 됩니다. 서버를 돌려야 하는 태스크라면 한 번 돌리는데 굉장히 오래 걸리는데, 오랜 시간 들여서 네모로 가득한 결과창을 보는 건 끔찍하잖아요? (절대절대절대 실화 아닙니다... 절대아닙니다..)

path = '/usr/share/fonts/truetype/nanum/NanumGothic_Coding.ttf' # fontlist에 있던 경로입니다
font_name = fm.FontProperties(fname=path).get_name()
rc('font', family=font_name)
plt.text(0.3, 0.3, '한글', size=100)

다음과 같은 결과가 나오면 정상이랍니다 :)

댓글