matplotlib 사용 중 나타나는 경고 메시지를 제목으로 잡았는데, 제목 내 HANGUL이란 단어에서 유추 가능하듯이 한글이 깨지는 경우(==네모 '□'로 나타나는 경우) 발생하는 경고이다.
해당 경고를 없애기 위해 가열찬 구글링으로 찾아서 참고한 글은 아래의 글이다.
Ubuntu에서 Matplotlib 한글 폰트 설정 | Hooni's Playground
안적어두니 매번 까먹는다. 방법만 알면 간단하지만, 방법을 조금이라도 까먹으면 바로 삽질을 하게된다. Ubuntu 환경에서 나눔 폰트를 사용한다는 가정하에 다음의 방법을 따르면 된다. 나눔 폰
hooni-playground.com
경고를 없애기 전, 일단 맞닥트린 전체 경고 메시지 중 하나는 다음과 같다.
/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 49688 (\N{HANGUL SYLLABLE SU}) missing from current font.
fig.canvas.print_figure(bytes_io, **kw)
그리고 경고를 유발한 코드이다.
1 import matplotlib.pyplot as plt
2
3 # 그래프 명
----> 4 plt.title('요일별 수강 완료 수강생 수') # 경고 유발행
5
6 # 그래프 x축 레이블
----> 7 plt.xlabel('요일') # 경고 유발행
8
9 # 그래프 y축 레이블
---> 10 plt.ylabel('수강생(명)') # 경고 유발행
경고 메시지 중 {HANGUL SYLLABLE SU}
내용을 보고 눈치 빠른 사람은 아마 알아차렸을 터. 저 경고는 한글 '글자' 단위로 발생하여 아래와 같은 문구가 포함된 경고들이 화면에 뿌려지는 것을 보게 된다.
{HANGUL SYLLABLE SU}
{HANGUL SYLLABLE GANG}
{HANGUL SYLLABLE SAENG}
{HANGUL SYLLABLE MYEONG}
{HANGUL SYLLABLE YO}
{HANGUL SYLLABLE IL}
{HANGUL SYLLABLE BYEOL}
{HANGUL SYLLABLE WAN}
{HANGUL SYLLABLE RYO}
각설하고!
경고를 없애기 위하여 아래와 같이 차례로 코드를 작성하여 하나씩 확인한다 ⇒ 단, ①旣 로드되어 있는 Jupyter Notebook 종료, ②해당 OS 상에 나눔고딕 폰트 설치, ③fc-cache -fv
명령 실행, 그리고 ④Jupyter Notebook 再 기동 등의 순서로 미리 적용되어 있다는 것을 전제로 한다.
# 설치된 글꼴 이름 파악을 위해서!!
import matplotlib as mpl
from matplotlib import font_manager as fm
from matplotlib import rc
# 설정 파일 위치 확인
print(mpl.matplotlib_fname())
print(mpl.__file__)
# Jupyter Notebook 로드 시 같이 올라온 font 목록 확인
[f.fname for f in fm.fontManager.ttflist] # NanumGothic.ttf 목록에서 확인 완료!!!
# NanumGothic 설정 확인
plt.rcParams['font.family'] = 'NanumGothic'
print(plt.rcParams['font.family']) # NanumGothic 설정 제대로 먹힌 것을 확인!!!
# 마이너스(-)가 '□'로 깨지는 것을 방지하기 위하여 설정!!!
mpl.rcParams['axes.unicode_minus'] = False
# matplotlib 차트에 한글이 제대로 표시되는지 확인
plt.text(0.3, 0.3, '한글', size = 100)
상기 코드 중 마지막 구문을 통해 아래와 같이 차트가 나타나면, 한글 설정이 제대로 된 것이다.