본문 바로가기

Error note

[python] UserWarning: Glyph 52489 (\N{HANGUL SYLLABLE COG}) missing from current font.

주피터 노트북에서 matplotlib 시각화 할 때, 한글 오류 안나게 불러왔는데도 불구하고 위 같은 에러 메시지가 한 바가지 나왔다.

 

 

해결1) 이 링크에 따르면 우선 matplotlib에서 가능한 폰트 리스트 확인하고

import matplotlib.font_manager as fm
f = [f.name for f in fm.fontManager.ttflist]
print(f)

 

해당 폰트가 리스트에 있다면 _rebulid()로 업데이트 하면 해결이 된다고 한다.

import matplotlib
matplotlib.font_manager._rebuild()

 

 

 

근데, 이렇게 해도 해결이 안된다.
모듈을 업데이트 해봐도 안된다.
커널 리스타트하고 해봐도 안된다.

 

AttributeError: module 'matplotlib.font_manager' has no attribute '_rebuild' 에러만 뜬다.

 

환장할 노릇이다.

새로생긴 에러를 고치려니 폰트 경로 설정을 직접 해주면 된다는데 그것도 안먹힌다. (참고블로그)

 

 

 

 

 

 

코드를 다시 뜯어보니 plt.style.use('default') 이 코드가 눈에 걸린다.

그렇다. 이 코드가 문제였다.

 

해결2) 한글 안깨지게 하는 폰트와 스타일 설정을 default로 한 코드를 이 순서로 쓰면 한글이 먹히지 않는다. 

# 이렇게 하면 안됨
plt.rc('font',family = 'Malgun Gothic') # 한글 안깨지게 하는 코드
plt.style.use('default')

 

default 스타일을 사용할 경우 반드시 순서를 지켜야 한다.

plt.style.use('default')
plt.rc('font',family = 'Malgun Gothic') # 한글 안깨지게 하는 코드

 

 

plt.style.use()의 다른 스타일을 사용할 경우 코드 입력 순서와 상관없이 한글이 먹힌다. 하지만 'default'인 경우는 반드시 한글 안깨지는 코드를 스타일 코드 뒤에 써야 에러가 나지 않는다.

 

반응형