썸네일 이미지 출처 : Colab에 miniforge를?
쉽게 말하면, 주피터 노트북을 클라우드 형태로 쓸 수 있도록, Google이 제공하는 서비스이다. 무료로도 사용할 수 있지만, 월 9.99$를 결제하여 'Google Colab PRO' 서비스도 사용할 수 있다. 가장 눈에 띄는 차이점은, 무료에서도 제공되지만, PRO에서는 'GPU로 하드웨어 가속'을 더 안정적으로 사용할 수 있다.
주피터 노트북, 구글 코랩 둘 다 한글 폰트 사용이 힘들다. 정확하게는 matplotlib 에서 한글 폰트가 깨진다. 주피터 노트북의 경우, 설정을 한 번 만지면, 영구적으로 한글 폰트를 별도의 설정없이 편하게 사용할 수 있다.
하지만, 아직까지는 주피터 노트북의 경우는 그게 안 되는 것 같다. (필자가 방법을 아직 못 찾은 것일 수도 있다.) 방법은 있으나, 매번 시작할 때마다 설정을 해줘야하는 번거로움이 있다. (귀찮니즘 유발) 이 방법이라도 공유하고자 한다.
: 새 파일이든, 기존 파일이든 상관없다. 새 파일이 아니라면, '런타임 초기화'(상단 탭 중 '런타임' 클릭 -> '런타임 초기화' 클릭)를 진행하자.
: 가장 첫 셀에 다음 코드를 복붙하여 넣고, 실행하자.
!sudo apt-get install -y fonts-nanum
!sudo fc-cache -fv
!rm ~/.cache/matplotlib -rf
실행 전
실행 후
어쩌고 저쩌고 하고 가장 마지막에 'succeeded' 라는 단어가 보이면 성공.
런타임 다시 시작을 진행하자.
위치를 모를 수도 있다는 생각에 스크린샷을 첨부한다.
너무 각박하게 슬라이스 했나...
: 다음 셀에 아래 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)
아래 간단한 코드로 간단하게 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()
실행하면,
잘 안 보이는 것 같으니 확대를 해보겠다.
잘 된 것을 볼 수 있다 : )
: 먼저 다음 필자의 두 장의 스크린샷을 보자.
그리고 구글 코렙 셀에서 위 코드들을 똑같이 입력해보자.
무언가 다르지않은가?
그렇다.
당신과 필자의 코랩 폰트가 다를 것이다.
이것 또한 설정할 수 있다.
지금부터 안내하겠다.
: 설정 -> 모양 -> 글꼴 맞춤설정 -> 고정폭 글꼴 여기에서 '고정폭 글꼴'을 '나눔 폰트'든, 자신이 원하는 폰트로 설정하면 된다. 필자의 경우, 'D2Coding ligature'로 설정해두었다.
: 웨일 브라우저는 크롬 브라우저 기반으로 제작된 브라우저이기 때문에 동일하다. 설정 -> 글꼴모양 -> 글꼴 맞춤설정 -> 고정폭 글꼴 여기에서 '고정폭 글꼴'을 자신이 원하는 폰트로 설정하면 된다. 역시 웨일 브라우저도 'D2Coding ligature'로 설정해두었다.
아래 포스팅들을 참고하여 작성하였습니다.
https://teddylee777.github.io/colab/colab-korean
https://m.blog.naver.com/miriele/222031577651
덕분에 코랩에서 plt 폰트가 깨지는 문제 해결했습니다 ^^