본문 바로가기

데이터시각화

주피터 노트북 그래프에서 한글 사용 방법

아나콘다에서 matplotlib을 사용해서 그래프를 그릴때 한글을 사용하게 되면 

다음과 같은 warning 메시지와 함께 글자가 깨져서 보이게 된다. 

plt.figure(figsize=(9,5))
plt.title('2022 매출액 ',color='red', fontsize=30) 
plt.plot(df['date'], df['sales'], marker='o', ms='8', mec='r', mew='2', mfc='w')


C:\Anaconda3\lib\site-packages\IPython\core\pylabtools.py:151: UserWarning: Glyph 47588 (\N{HANGUL SYLLABLE MAE}) missing from current font.
  fig.canvas.print_figure(bytes_io, **kw)
C:\Anaconda3\lib\site-packages\IPython\core\pylabtools.py:151: UserWarning: Glyph 52636 (\N{HANGUL SYLLABLE CUL}) missing from current font.
  fig.canvas.print_figure(bytes_io, **kw)
C:\Anaconda3\lib\site-packages\IPython\core\pylabtools.py:151: UserWarning: Glyph 50529 (\N{HANGUL SYLLABLE AEG}) missing from current font.
  fig.canvas.print_figure(bytes_io, **kw)

 

 

 

이를 해결 하기 위해서는 한글 폰트를 사용하겠다고 선언을 해 주어야 한다.

순서는 다음과 같다. 

 

한글 폰트 사용하기 

 

- 폰트 확인 

# 폰트 매니저 라이브러리 import 
import matplotlib.font_manager as fm 

# 사용하는 시스템에 폰트가 있는지 확인 해야 한다. 내가 사용하고자 하는 폰트가 없으면 사용 할 수 없다. 
# 여기서는 네이버에서 제공하는 D2Coding 폰트를 사용할 계획이다. 
[f.name for f in fm.fontManager.ttflist if 'D' in f.name]

# D로 시작하는 폰트 목록을 보여준다. 
['DejaVu Sans Mono',
 'DejaVu Sans Mono',
 'DejaVu Sans',
 'DejaVu Serif',
 'DejaVu Sans Mono',
 'DejaVu Serif Display',
 'DejaVu Sans',
 'DejaVu Sans',
 'DejaVu Sans Display',
 'DejaVu Sans Mono',
 'DejaVu Sans',
 'DejaVu Serif',
 'DejaVu Serif',
 'DejaVu Serif',
 'D2Coding',
 'Segoe MDL2 Assets',
 'HoloLens MDL2 Assets']

 

- 폰트 다운

* D2Coding 폰트는 아래 링크에서 다운 받을 수 있다.

https://github.com/naver/d2codingfont

 

GitHub - naver/d2codingfont: D2 Coding 글꼴

D2 Coding 글꼴. Contribute to naver/d2codingfont development by creating an account on GitHub.

github.com

 

- 폰트 설정 

다음과 같이 원하는 폰트를 지정하면 사용 할 수 있다. 

# 한글폰트 지정 
plt.rcParams['font.family'] = 'D2Coding'

위 방법은 주피터 노트 파일을 새로 만들때 마다 매번 실행해줘야 하는 번거로움이 있어 불편하다

이를 해결 하기 위해서는 matplotlib 의 설정 파일에 한글 폰트를 등록 해 주면 된다.

 

- matplotlib  설정파일 위치 확인 

matplotlib 의 설정 파일 위치를 먼저 확인 하여야 한다. 

import matplotlib as mlt

print(mlt.matplotlib_fname())

# 설정 파일의 위치를 다음과 같이 보여준다.
C:\Anaconda3\lib\site-packages\matplotlib\mpl-data\matplotlibrc

 

- 설정 파일 변경 

위에서 찾은 설정 파일을 에디터에서 열고 내가 사용하고자 하는 폰트로 변경 하여 주면 된다.

#font.family:  sans-serif 

# 이 부분을 찾아서 아래와 같이 내가 사용하고자 하는 폰트로 변경 하여 주면 된다.
# sans-serif 부분에 폰트 이름을 넣어주면 된다. 

#font.family:  D2Coding

 

이제 주피터 노트북을 재실행하면 한글 폰트를 편하게 사용 할 수 있다.