세팅이 반이다_ Google COLAB - 한글폰트편

그는사악해·2021년 8월 10일
3

세팅이 반이다.

목록 보기
7/8
post-thumbnail

썸네일 이미지 출처 : Colab에 miniforge를?

Google COLAB

쉽게 말하면, 주피터 노트북을 클라우드 형태로 쓸 수 있도록, Google이 제공하는 서비스이다. 무료로도 사용할 수 있지만, 월 9.99$를 결제하여 'Google Colab PRO' 서비스도 사용할 수 있다. 가장 눈에 띄는 차이점은, 무료에서도 제공되지만, PRO에서는 'GPU로 하드웨어 가속'을 더 안정적으로 사용할 수 있다.

공통적인 문제

주피터 노트북, 구글 코랩 둘 다 한글 폰트 사용이 힘들다. 정확하게는 matplotlib 에서 한글 폰트가 깨진다. 주피터 노트북의 경우, 설정을 한 번 만지면, 영구적으로 한글 폰트를 별도의 설정없이 편하게 사용할 수 있다.
하지만, 아직까지는 주피터 노트북의 경우는 그게 안 되는 것 같다. (필자가 방법을 아직 못 찾은 것일 수도 있다.) 방법은 있으나, 매번 시작할 때마다 설정을 해줘야하는 번거로움이 있다. (귀찮니즘 유발) 이 방법이라도 공유하고자 한다.

01. COLAB matplotlib에 한글이 안 깨지도록

1) 먼저 코랩에서 노트북 파일을 열자

: 새 파일이든, 기존 파일이든 상관없다. 새 파일이 아니라면, '런타임 초기화'(상단 탭 중 '런타임' 클릭 -> '런타임 초기화' 클릭)를 진행하자.

2) 열었다면, 한글 '나눔' 폰트를 설치하자

: 가장 첫 셀에 다음 코드를 복붙하여 넣고, 실행하자.

!sudo apt-get install -y fonts-nanum
!sudo fc-cache -fv
!rm ~/.cache/matplotlib -rf

실행 전

실행 후

어쩌고 저쩌고 하고 가장 마지막에 'succeeded' 라는 단어가 보이면 성공.

3) 이제 '런타임 다시 시작'를 진행하자.

런타임 다시 시작을 진행하자.
위치를 모를 수도 있다는 생각에 스크린샷을 첨부한다.

너무 각박하게 슬라이스 했나...

4) import

: 다음 셀에 아래 import 코드들을 복사해서 붙여넣고 실행하자.
이전 '2) 열었다면, 한글 '나눔' 폰트를 설치하자' 단계에서의 코드는 런타임 다시 시작 후 패스하고 다음 빈 셀에 아래 코드들을 실행하는 것이다.

보면 알겠지만, 데이터 분석, 머신러닝에 필요한 기본적인 라이브러리들을 import 할 수 있도록 다 작성하였다. COLAB에서 처음에 한 번 실행하면, import 코드를 중간중간에 입력할 필요가 없다.

# basic 
import time
import random
import math

#data analytics
import numpy as np
import pandas as pd

#Math
import scipy as sp
import statsmodels.api as sm

#web crawling
import requests
from bs4 import BeautifulSoup

#visualization
import matplotlib as mpl
import matplotlib.pylab as plb
import matplotlib.pyplot as plt
import sklearn as sk
import seaborn as sns

# 브라우저에서 바로 그려지도록 
%matplotlib inline

# 그래프에 retina display 적용
%config InlineBackend.figure_format = 'retina'

# Colab 의 한글 폰트 설정
plt.rc('font', family='NanumBarunGothic') 

# 유니코드에서  음수 부호설정
mpl.rc('axes', unicode_minus=False)

참고용 스샷!

import 코드가 너무 길다면 위 스크린샷처럼 코드셀 2개에 나눠서 차례대로 실행해도 된다. (어차피 다 쓰지도 않는데 뭐하러 길게하나 싶으면) 그저 matplotlib에서 한글이 안 깨지도록 설정만 하고 싶다면, 다음 코드만을 복사해서 붙여넣기 하고 실행하면 되겠다.

#visualization
import matplotlib as mpl
import matplotlib.pylab as plb
import matplotlib.pyplot as plt

# 브라우저에서 바로 그려지도록 
%matplotlib inline

# 그래프에 retina display 적용
%config InlineBackend.figure_format = 'retina'

# Colab 의 한글 폰트 설정
plt.rc('font', family='NanumBarunGothic') 

# 유니코드에서  음수 부호설정
mpl.rc('axes', unicode_minus=False)

여기까지 했다면, 사실 설정 자체는 끝났다.

5) 테스트 해보자

아래 간단한 코드로 간단하게 matplotlib로 시각화 및 한글 폰트를 실험해보자.

plt.plot([x for x in range(0, 10)], [(3*y**2)+2 for y in range(0, 10)])
plt.title("예제다", fontsize= 13)
plt.xlabel("x축", fontsize= 12)
plt.xticks(np.arange(0, 10, 1), ['하나', '둘', '셋', '넷', '다섯', '여섯', '일곱', '여덟', '아홉', '열'], fontsize= 12, rotation= 45)
plt.ylabel("y축", fontsize= 12)
plt.show()

실행하면,

잘 안 보이는 것 같으니 확대를 해보겠다.

잘 된 것을 볼 수 있다 : )

02 COLAB에서 폰트를?

: 먼저 다음 필자의 두 장의 스크린샷을 보자.

그리고 구글 코렙 셀에서 위 코드들을 똑같이 입력해보자.
무언가 다르지않은가?

그렇다.
당신과 필자의 코랩 폰트가 다를 것이다.

이것 또한 설정할 수 있다.
지금부터 안내하겠다.

> COLAB에서 폰트 설정하기

1) Chrome Browser

: 설정 -> 모양 -> 글꼴 맞춤설정 -> 고정폭 글꼴 여기에서 '고정폭 글꼴'을 '나눔 폰트'든, 자신이 원하는 폰트로 설정하면 된다. 필자의 경우, 'D2Coding ligature'로 설정해두었다.

2) Whale Browser

: 웨일 브라우저는 크롬 브라우저 기반으로 제작된 브라우저이기 때문에 동일하다. 설정 -> 글꼴모양 -> 글꼴 맞춤설정 -> 고정폭 글꼴 여기에서 '고정폭 글꼴'을 자신이 원하는 폰트로 설정하면 된다. 역시 웨일 브라우저도 'D2Coding ligature'로 설정해두었다.

아래 포스팅들을 참고하여 작성하였습니다.
https://teddylee777.github.io/colab/colab-korean
https://m.blog.naver.com/miriele/222031577651

profile
데이터를 베어라

2개의 댓글

comment-user-thumbnail
2022년 4월 1일

덕분에 코랩에서 plt 폰트가 깨지는 문제 해결했습니다 ^^

답글 달기
comment-user-thumbnail
2024년 11월 28일

정말 감사합니다 ㅠㅠ 그래프에서 계속 폰트가 깨져서 어떻게 해야 하는지 몰랐는데 덕분에 해결했습니다!!

답글 달기