Python은 왠지 한글하고 친하지가 않은 것 같다.

그나마 v3.x 버전이 되면서 많이 편해지긴 했지만, 그래도 한글 관련 이슈가 계속 나오는 느낌적인 느낌이...

 

MachineLearning 공부하게 되면서 많은 분들이 사용하고 있는 matplotlib의 경우에도

기본적으로는 한글 출력에 문제가 있다.

 

Google Colab 및 Local 환경에서 matplotlib 한글 출력이 잘 되도록 해보자.

 

 

1. Google Colab

 

① 기본 상황

  - 한글 부분이 제대로 나오지 않는 것을 볼 수 있다.

 

font error

 

② 폰트 설치

  - 나눔 폰트를 설치해보자.

 

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

 

install font

 

③ 런타임 재시작

  - 설치된 폰트를 사용하기 위해 "런타임 다시 시작"을 실행하자

 

런타임 다시 시작

 

④ 폰트 적용

  - 이제 한글을 적용해서 그래프를 그려보자.

  - 설치한 폰트를 사용하도록 한 줄 추가가 되어야 한다.

 

plt.rc('font', family='NanumBarunGothic')

 

matplotlib with hangul

 

  - 그런데, 위의 그래프에서 뭔가 이상한 것을 볼 수 있는가?

  - y축의 "-5" 부분이 제대로 출력되지 않았다.

 

⑤ minus 처리

  - 아래와 같은 구문이 추가되면 된다.

import matplotlib as mpl
 
mpl.rcParams['axes.unicode_minus'] = False

 

fix minus

 

 

2. Local (Ubuntu)

Colab과 비슷하지만 약간 차이가 있다.

 

① 기본 상황

  - 코드가 살짝 다르다.

 

import pandas as pd
import matplotlib.pyplot as plt
import warnings

warnings.simplefilter(action='ignore', category=UserWarning)

plt.plot(['서울', '경기', '인천', '광주', '대구', '부산', '울산', '대전', '제주'], [12, 32, -4, 0, 5, 2, 19, 9, 3])
plt.xlabel('x축')
plt.ylabel('y축')
plt.title('제목')
plt.savefig('test.png')

 

execute

 

error

 

② 폰트 설치

  - 나눔 폰트를 설치해보자.

 

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

 

③ 코드 개선

  - 폰트 및 마이너스 관련 코드 추가해서 재실행해보자.

 

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl
import warnings

warnings.simplefilter(action='ignore', category=UserWarning)

plt.rc('font', family='NanumBarunGothic')
mpl.rcParams['axes.unicode_minus'] = False

plt.plot(['서울', '경기', '인천', '광주', '대구', '부산', '울산', '대전', '제주'], [12, 32, -4, 0, 5, 2, 19, 9, 3])
plt.xlabel('x축')
plt.ylabel('y축')
plt.title('제목')
plt.savefig('test.png')

 

new graph

 

예쁜 한글 파이팅 !!!

 

반응형


나이먹은 고리타분한 아저씨가 되어버린 나...

수학이 무서워서, 새로운 것 배우기가 무서워서 피해다녔는데...

결국은 AI/ML 공부를 할 수 밖에 없게 되어버렸다.


뭐 이제와서 내가 Modeler가 되거나 Data Engineer가 될 것은 아니지만

인프라쟁이이기에 최소한 MLOps 관련되어서는 알아야 하기에

기본적인 AI/ML 공부는 해야하는 상황에 놓여졌다.


항상 SW 공부할 때 나만의 환경에서 CLI 위주로 하는 스타일이었는데...

그래서 AI/ML 공부도 그렇게 해보려고 했는데,

결국은 Jupyter Notebook의 편리함을 이용하지 않을 수가 없었다.


Jupyter Notebook도 나의 환경에서 설치해서 해볼 수 있지만,

최근 GCP를 사용해볼 이유도 있어서

Colab 환경을 사용해보기로 마음 먹었다.


그러던 中 Kaggle 에서 제공해주는 데이터를 Colab에 넣어야할 상황이 벌어졌는데

Colab과 Kaggle을 바로 연결할 수 있는 방법이 있다고 해서

한 번 알아보았다.


1. Colab

    - 구글에서 무료로 제공해주는 훌륭한 머신러닝 개발환경이다.

    - 제공해주는 환경의 스펙이 아래와 같다고 한다. 와우~!! 대박~!!

        . CPU : 제온

        . Mem : 13GB

        . HDD : 320GB

        . GPU : NVidia Tesla K80

    - https://colab.research.google.com/



2. 준비

    - Colab 접속 후 아래와 같이 "파일 - 새 Python 3 노트"를 선택하자.




3. Kaggle 설치

    - "!"를 앞에 붙이면 시스템 명령어를 사용할 수 있다.

    - 타이핑 후 왼쪽의 화살표(?)를 클릭하면 실행된다.




4. Kaggle 인증키 다운로드

    - Colab에서 Kaggle 데이터를 가져오기 위해서는 접근할 수 있는 권한이 있어야 한다.

    - Kaggle 사이트에서 내 계정에 대한 인증키를 얻어보자.



    - "Edit Profile"을 클릭한 다음



    - "Create New API Token"을 클릭하면, "kaggle.json" 파일이 다운로드 된다.



5. 인증키 업로드

    - 다운로드 받은 인증키를 Colab에 업로드하자.



    - 윗 부분의 "+ 코드"를 선택하면 새로운 라인이 추가된다.

    - 아래 코드를 넣은 뒤 왼쪽 플레이 버튼을 누르면 "파일 선택" 버튼이 나온다.


from google.colab import files

files.upload()


    - "파일 선택"을 누른 뒤 아까 다운로드 받은 Kaggle 인증키 파일을 골라주면 위와 같이 나온다.



6. 인증키 복사하기

    - 업로드된 인증키를 정해진 곳에 넣어줘야 한다.

    - kaggle을 위한 디렉토리를 우선 만들어보자.


!ls -al

!mkdir -p ~/.kaggle

!ls -al ~/


    - 인증키를 복사한 뒤 속성 변경까지 해놓자

!cp kaggle.json ~/.kaggle/kaggle.json

!chmod 600 ~/.kaggle/kaggle.json

!ls -al ~/.kaggle/


    - 위와 같이 한 번에 여러 라인을 넣을 수도 있다.



7. Kaggle 데이터 목록

    - Kaggle 데이터 목록을 살펴볼 수 있다.



!kaggle competitions list



8. Kaggle 데이터 확인하기

    - Kaggle 사이트에서 Dataset을 보면 다운로드를 받을 수 있는 API를 확인할 수 있다.




9. Titanic 데이터 다운로드

    - Colab에 다운로드 받아보자.

    - 주의할 점은 시스템 실행을 위해서 항상 앞에 "!"를 붙여야 한다.



모두들 즐거운 머신러닝 생활~~~~!!!

반응형

+ Recent posts