kaggle 한글폰트 적용

Page content

개요

  • 캐글에서 한글폰트를 적용하는 방법에 대해 알아본다.
  • 가장 간편한 방법은 폰트를 업로드 한 뒤 업데이트 하는 방식이다.

폰트 확인

  • 폰트는 아래 사이트에서 다운로드 받는다.
  • 사이트 : https://hangeul.naver.com/font
  • 여기에서 나눔글꼴을 다운로드 받았다.

Untitled

폰트 압축풀기

  • 다운로드 폰트를 압축 풀기 하면 매우 다양한 폰트가 확인이 된다.
  • 여기에서 나눔스퀘어 > NanumFontSetup_TTF_SQUARE 파일에서 폰트 목록을 확인한다.

Untitled

폰트 업로드

  • 이제 현재 사용하는 캐글 노트북에 추가한다.
  • 임의의 font 폴더명을 입력했다.

Untitled

  • Create 버튼을 클릭한다.

Untitled

  • 업로드 이후에 폴더에 폰트가 들어간 것을 확인한다.

Untitled

설치된 폰트 확인

  • 이제 폰트를 불러온다.
  • 여기에는 나눔고딕 폰트가 존재하지 않는다.
import matplotlib.font_manager as fm
', '.join(sorted([font.name for font in fm.fontManager.ttflist]))
'DejaVu Math TeX Gyre, DejaVu Sans, DejaVu Sans, DejaVu Sans, DejaVu Sans, DejaVu Sans, DejaVu Sans, DejaVu Sans, DejaVu Sans, DejaVu Sans, DejaVu Sans, DejaVu Sans, DejaVu Sans, DejaVu Sans, DejaVu Sans, DejaVu Sans Display, DejaVu Sans Mono, DejaVu Sans Mono, DejaVu Sans Mono, DejaVu Sans Mono, DejaVu Sans Mono, DejaVu Sans Mono, DejaVu Sans Mono, DejaVu Sans Mono, DejaVu Serif, DejaVu Serif, DejaVu Serif, DejaVu Serif, DejaVu Serif, DejaVu Serif, DejaVu Serif, DejaVu Serif, DejaVu Serif, DejaVu Serif, DejaVu Serif, DejaVu Serif, DejaVu Serif Display, Inconsolata, Inconsolata, Liberation Mono, Liberation Mono, Liberation Mono, Liberation Mono, Liberation Sans, Liberation Sans, Liberation Sans, Liberation Sans, Liberation Sans Narrow, Liberation Sans Narrow, Liberation Sans Narrow, Liberation Sans Narrow, Liberation Serif, Liberation Serif, Liberation Serif, Liberation Serif, STIXGeneral, STIXGeneral, STIXGeneral, STIXGeneral, STIXNonUnicode, STIXNonUnicode, STIXNonUnicode, STIXNonUnicode, STIXSizeFiveSym, STIXSizeFourSym, STIXSizeFourSym, STIXSizeOneSym, STIXSizeOneSym, STIXSizeThreeSym, STIXSizeThreeSym, STIXSizeTwoSym, STIXSizeTwoSym, Source Code Pro, Source Code Pro, Source Code Pro, Source Code Pro, Source Code Pro, Source Code Pro, Source Code Pro, Source Code Pro, Source Code Pro, Source Code Pro, Source Code Pro, Source Code Pro, Source Code Pro, Source Code Pro, Ubuntu, Ubuntu, Ubuntu, Ubuntu, Ubuntu, Ubuntu, Ubuntu, Ubuntu, Ubuntu, Ubuntu Condensed, Ubuntu Mono, Ubuntu Mono, Ubuntu Mono, Ubuntu Mono, cmb10, cmex10, cmmi10, cmr10, cmss10, cmsy10, cmtt10'

폰트 등록

  • 이번에는 등록할 폰트 폴더를 확인 후, 등록을 진행한다.
fontpaths = "/kaggle/input/nanumfont-ttf-square"
font_list = fm.findSystemFonts(fontpaths = fontpaths, fontext='ttf')
for font_file in font_list:
    fm.fontManager.addfont(font_file)
fm._load_fontmanager(try_read_cache=False)
  • 실제 등록이 되었는지 확인한다.
', '.join(sorted([font.name for font in fm.fontManager.ttflist]))
'DejaVu Math TeX Gyre, ..., Liberation Serif, NanumSquare, NanumSquare, NanumSquare, NanumSquare, NanumSquare_ac, NanumSquare_ac, NanumSquare_ac, NanumSquare_ac, STIXGeneral, STIXGeneral, STIXGeneral, ...

테스트

  • 이제 사용하고자 하는 폰트를 matplotlib에 추가한다.
import matplotlib.pyplot as plt
plt.rc('font', family='NanumSquare_ac')
  • 샘플 코드를 실행한다.
import matplotlib.pyplot as plt 
plt.plot([1, 2, 3])
plt.title("한글")
plt.show()

Untitled

폰트 추가 주의

  • 폰트명이 한글로만 되어 있는 것은 업로드 후에 한글글자가 사라진다.
  • 동일한 사이트에서 클로바 나눔손글씨 폰트를 다운로드 받은 후 옥비체를 테스트 해봤다.

Untitled

  • 따라서 한글 글씨체로 파일 저장이 되어 있다면 변경한다.

Untitled

  • 방법은 동일하다.
fontpaths = "/kaggle/input/nanum-clova2"
font_list = fm.findSystemFonts(fontpaths = fontpaths, fontext='ttf')
for font_file in font_list:
    fm.fontManager.addfont(font_file)
fm._load_fontmanager(try_read_cache=False)
', '.join(sorted([font.name for font in fm.fontManager.ttflist]))
  • 그 후에 추가된 폰트명을 찾아서 아래와 같이 입력한다.
plt.rc('font', family='Nanum OgBiCe')
plt.plot([1, 2, 3])
plt.title("한글")
plt.show()

Untitled